동작 파라미터화와 람다의 관계성
·
자바
동작 파라미터란? 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록  이러한 코드 블록의 실행은 나중으로 미뤄진다. 예를 들어 나중에 실행될 메서드의 인수로 코드 블록을 전달할 수 있다. 기존 변수와 컬렉션만 인수로 전달하는 것이 아닌 메서드를 인수로 전달한다고 생각하면 될 것이다. 동작 파라미터 사용의 이점은 변화하는 요구사항에 대응하기 쉽다는 것이다. 이유를 알아보자 사과 농장에서 조건에 따라 사과를 리스트화 해서 분류하고 싶은 요구사항이 있다고 가정하자 1.  메소드로 해결 먼저 색과 관련한 enum이 존재한다.enum Color { RED, GREEE} 녹색사과를 리스트로 만들면 다음과 같을 수 있다public static List filterGreenApplease(List inventory..
백준 1697번 : 숨바꼭질 자바
·
알고리즘
https://www.acmicpc.net/problem/1697문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.🔵풀이간단한 b..
YAML 파일 작성법 알아보기
·
기타
도커 yaml 파일은 이미지로 컨테이너를 실행시키는 과정없이 docker-compose와 함께 사용하면 간단히 컨테이너를 띄울 수 있다. 또한 다중 컨테이너를 띄울때 사용되는 파일이다. docker-compose.yaml 파일의 구조를 알아보자 1. version2. services     서비스명1: #어플리케이션 설정값 정의     서비스명2: #어플리케이션 설정값 정의3. networks     네트워크 설정, 미지정 시 자동 생성4. volumes      볼륨 설정 위에서 아래로 처리되는 직렬 구조이다. 일반적으로 가장 먼저 실행되어야 하는 애플리케이션을 먼저 작성하고, 이와 의존성을 갖는 데이터베이스 및 하위 애플리케이션을 작성한다. 그 다음 전체 애플리케이션에 필요한 네트워크, 볼륨, 캐시 ..
백준 15683번 : 감시 (자바)
·
알고리즘
https://www.acmicpc.net/problem/15683문제스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다.     1번2번3번4번5번1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 수 있다.CCTV는 감시할 수 있는 방향에 있는 칸 전체를 감시할 수 있다. 사무실에는 벽이 있는데, CCTV는 벽을 통과할 수 없다. CCTV가 감시할 수 없..
백준 22866번 : 탑보기(자바)
·
알고리즘
https://www.acmicpc.net/problem/22866문제일직선으로 다양한 높이의 건물이 총 N개가 존재한다. 각 건물 옥상에서 양 옆에 존재하는 건물의 옆을 몇 개 볼 수 있는지 궁금해졌다. i번째 건물 기준으로 i - 1, i - 2, ..., 1번째 건물은 왼쪽에, i + 1, i + 2, ..., N번째 건물은 오른쪽에 있다. 각 건물 사이의 거리는 다 동일하다.현재 있는 건물의 높이가 L이라고 가정하면 높이가 L보다 큰 곳의 건물만 볼 수 있다.바라보는 방향으로 높이가 L인 건물 뒤에 높이가 L이하인 건물이 있다면 가려져서 보이지 않는다.번호12345678높이37163517보이는 건물 번호2x2, 4, 82, 82,4,6,82,4,82,4,6,8x각 건물에서 볼 수 있는 건물들이 어..
백준 1027번 : 고층 건물 (자바)
·
알고리즘
문제세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작)은 (i,0)부터 (i,높이)의 선분으로 나타낼 수 있다. 고층 빌딩 A에서 다른 고층 빌딩 B가 볼 수 있는 빌딩이 되려면, 두 지붕을 잇는 선분이 A와 B를 제외한 다른 고층 빌딩을 지나거나 접하지 않아야 한다. 가장 많은 고층 빌딩이 보이는 빌딩을 구하고, 거기서 보이는 빌딩의 수를 출력하는 프로그램을 작성하시오.입력첫째 줄에 빌딩의 수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에 1번 빌딩부터 그 높이가 주어진다. 높이는 1,000,000,000보다 작거나 같은 자연수이다.출력첫째 ..
백준 1976번 : 여행 가자(자바)
·
알고리즘
문제동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인지 알아보자. 물론 중간에 다른 도시를 경유해서 여행을 할 수도 있다. 예를 들어 도시가 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, 동혁이의 여행 계획이 E C B C D 라면 E-A-B-C-B-C-B-D라는 여행경로를 통해 목적을 달성할 수 있다.도시들의 개수와 도시들 간의 연결 여부가 주어져 있고, 동혁이의 여행 계획에 속한 도시들이 순서대로 주어졌을 때 가능한지 여부를 판별하는 프로그램을 작성하시오. 같은 도시를 여러 번 방문하는 것도 가능하다.입력첫 줄에 도시의 수 N이 주어진..
백준 1806번 : 부분합 (자바)
·
카테고리 없음
문제10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오.입력첫째 줄에 N (10 ≤ N 출력첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다.🔵풀이투포인터를 활용하여 풀었습니다. 수열의 원소 하나가 S이상인 경우, 맨 마지막 수열을 포함해야 S이상이 되는경우를 예외로 처리해주었습니다. 코드가 명료하거나 명확하진 않은 것 같습니다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import j..
백준 4485번 : 녹색 옷 입은 애가 젤다지?(자바)
·
알고리즘
https://www.acmicpc.net/problem/4485문제젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다!젤다의 전설 시리즈의 주인공, 링크는 지금 도둑루피만 가득한 N x N 크기의 동굴의 제일 왼쪽 위에 있다. [0][0]번 칸이기도 하다. 왜 이런 곳에 들어왔냐고 묻는다면 밖에서 사람들이 자꾸 "젤다의 전설에 나오는 녹색 애가 젤다지?"라고 물어봤기 때문이다. 링크가 녹색 옷을 입은 주인공이고 젤다는 그냥 잡혀있는 공주인데, 게임 타이틀에 젤다가 나와있다고 자꾸 사람들이 이렇게 착각하니까 정신병에 걸릴 위기에 놓인 것이다.하여튼 젤다...아니 링크는 이 동굴의 반대편 출..
Ec2 certbot을 이용해서 https 연결하기 (ssl, nginx)
·
AWS
보안을 위해서 https 연결은 필수적입니다. 때문에 이전에는 aws에서 제공해주는 ssl 인증서와 로드밸런서를 이용해서 https 연결을 하곤 했었습니다. 하지만 certbot을 이용하면 훨씬 더 손쉽고 간편하게 연결할 수 있습니다. 더보기❗️https 연결을 하기 위해서 도메인을 먼저 구매하여 route53을 통해 Ec2에 연결하는 작업이 선행되어야 합니다.선행작업이 모두 완료되었다면 ssh를 통해 ec2에 접속해줍니다. 그리고 certbot 홈페이지에 접속해줍니다. https://certbot.eff.org/ CertbotTaglinecertbot.eff.org 1. 서트봇 홈페이지 접속그러면 아래와 같이 software와 system을 선택할 수 있게 됩니다. 저는 software에 nginx, ..
돌_멩
여러취미