목록코딩 테스트 (70)
YataNox
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이어떻게 풀어야할지 감이 안와서 아래의 글을 참고 했다.map의 가장 윗 줄과 가장 왼쪽 줄은 최단 거리가 1개 밖에 없다는 점을 이용하여 다 1로 채우고 (물 웅덩이가 있는 경우는 제외)특정 칸의 최단 거리 개수를 구할 때 윗 칸과 왼쪽 칸의 값을 확인하여 더해서 기록한다는 발상을 활용한다. [Java] 프로그래머스 등굣길문제 https://school.programmers.co.kr/learn/courses/30/lessons/42898?language=java# 프로그래머스 코드 중심의 개발자..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이1. 한 번 방문했던 단어는 더 이상 접근하지 않아도 된다.2. 각 단어에 도달했었던 단계 (방문레벨)을 각각 기록한다. 우선, 각 위치의 words에 방문했었는지와 몇 번째로 방문했는지를 기록할 visited 배열을 하나 만들고변환가능한 단어를 저장할 큐를 하나 생성한다.다음으로 Begin에서 변환 가능한 모든 단어를 찾아서 큐에 담아내고 해당 단어의 index위치의 visited를 1로 저장한다.(1단계에 도달가능한 단어라는 의미) 이후 큐가 빌 때까지 확인을 거치는데추출한 단어와 아직 방문레..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이문제를 보자마자 든 생각이 아 저 works를 내림차순 우선순위 큐에 담아놓으면 되겠구나였다. n시간 만큼 일을 해서 n만큼의 작업량을 처리하는데 n시간 뒤에 works의 남은 작업량의 제곱수들의 합이 최소값이 되도록 구해야하는 것이다. 즉, 각 작업의 남은 작업량이 작을 수록 제곱수들의 합이 작아진다. 만약 7 8 6으로 작업이 남았고 n이 3이다라고 했을 때 1. 8에서 1시간 작업을 하여 7이 남도록 만든다. 2. 7 둘 중 하나를 작업하여 6이 남도록 만든다. 3. 남은 7 하나를 작업하여 ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/43105?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이위에서 아래로 내려가며 계산하면 고려할게 너무 많다.BOTTOM - UP 방식으로 위로 올라가면서 계산한다.한 줄로 표현하면 n층 i번과 i + 1번 중 더 큰 값을 n - 1층 i번에 더한다.그러면 맨 위층에는 아래서부터 더해서 올라온 값 중 가장 큰 값이 저장되고 그 값을 반환한다.자바 코드import java.util.*;class Solution { ..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이1 ~ elements개(이하 k개)의 수열을 합산했을 때 나올 수 있는 수의 개수를 출력하는 문제이다.중복 값을 없애기 위해 HashSet을 사용한다.수열의 0번째 자리부터 시작하면서 k개의 수열의 합을 더한다.이후 더한 합을 HashSet에 저장한다.모든 연산이 종료된 뒤에 HashSet의 size를 확인하면 정답이 나온다.로직은 주석으로 확인자바 코드import java.util.*;class Solution { public int solution(int[] elements) { ..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이스택(서브 컨테이너)을 활용해야하는 문제이다.1. 메인 컨테이너에서 꺼낼 수 있는 박스가 기사가 원하는 박스(이하 기사 박스)보다 작으면 다른 것을 고려할 필요가 없고 현재 컨테이너의 박스를 서브 컨테이너에 담으면 된다.2. 메인 컨테이너와 기사 박스가 같다면 정답을 +1 하고 다음 박스를 검사한다.3. 12를 제외한 상황은 서브컨테이너를 확인해야하는 상황이다.3-2. 서브 컨테이너에서 꺼낼 수 있는 박스와 기사 박스가 같다면 2와 같이 정답을 +1 처리하고 다음 박스를 검사한다.4. 서브 컨테이..
문제문제 풀이생각보다 단순했다.그냥 각 인원의 토핑 종류를 저장할 배열을 각각 만들고한 쪽에 일단 전부 몰아준 뒤에 하나씩 다른쪽에 넘겨주면서 토핑 종류를 비교하면 쉽다.자바 코드import java.util.*;class Solution { public int solution(int[] topping) { int answer = 0; // 토핑 종류 int toppingKind = Arrays.stream(topping).max().getAsInt(); // 각 인원이 가진 토핑 개수를 기록할 배열, 1 ~ toppingKind만큼의 수를 위해 toppingKind + 1 // 추가로 마지막에 가진 토핑 종류가 몇개인지 ..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이문제 이해가 너무 어려웠다.(프로그래머스놈들 문제를 너무 이상하게 쓴다...)콜라츠 추측으로 인해 숫자 k가 어떻게 변화하는지를 꺾인선 그래프로 그렸을 때 주어지는 [a, b] 영역에 대해 넓이를 구하라는 문제이다.위의 사진을 기준으로 문제를 풀어보면k가 5부터 시작하여 16, 8 ,4 , 2, 1순으로 n = 6개의 꼭짓점이 발생한 것이 보인다. 이 때 각 꼭짓점을 기준으로 선을 하나 그어보면 사다리꼴의 영역이 보일 것이다. 이때 n - 1 개의 사다리꼴 영역이 생긴 것이 보인다.각 사다리 꼴은..