Problem Solving/Programmers
[프로그래머스, 43164] 여행경로 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 68.2 MB, 시간: 0.87 ms사용 알고리즘: DFS 동일한 공항을 출발지로 하는 티켓이 여러 개일 수 있다.따라서 공항을 key값으로,key 공항을 출발지로 하는 티켓의 인덱스를 담은 리스트를 value값으로 가지는 Map을 만들어준다. 위의 Map을 만들기 전에,가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 해야 하므로,도착지를 기준으로 tickets을 사전..
[프로그래머스, 161989] 덧칠하기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 85.7 MB, 시간: 1.79 ms사용 알고리즘: 구현 class Solution { public int solution(int n, int m, int[] section) { int answer = 0; // 페인트 한 번 칠했을 때, 롤러가 끝나는 위치 int endOfRoller = 0; for(int i = 0; ..
[프로그래머스, 64062] 징검다리 건너기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 67.1 MB, 시간: 92.76 ms사용 알고리즘: 우선순위 큐, 그리디 알고리즘 건널 수 있는 친구들은 모두 건너고, 마지막 친구가 건너는 상황이라고 가정현재 위치 point에서 k칸 내에 있는 디딤돌 중, 가장 숫자가 큰 디딤돌로 이동징검다리를 건널 때까지 항상 범위 내 가장 숫자가 큰 디딤돌로 이동한다.밟은 디딤돌 중 숫자가 가장 작은 디딤돌이 사라지면, 더 이상 다른 친구가 건널 수 ..
[프로그래머스, 12985] 예상 대진표 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 74.8 MB, 시간: 0.03 ms사용 알고리즘: 트리 class Solution{ public int solution(int n, int a, int b) { int answer = 1; while(a / 2 + (a % 2 == 0 ? 0 : 1) != b / 2 + (b % 2 == 0 ? 0 : 1)) { // a와 b가 같은 팀인지 확인 ..
[프로그래머스, 12943] 콜라츠 추측 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 77.9 MB, 시간: 0.04 ms사용 알고리즘: 구현, 비트 연산자 class Solution { public int solution(int num) { int answer = 0; long n = num; while(n > 1) { if(++answer == 501) { // 400번 반복할..
[프로그래머스, 12984] [level 4] 지형 편집 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12984# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 63.4 MB, 시간: 80.51 ms사용 알고리즘: 구현 같은 층을 가진 칸이 몇 개가 있는지 구하여,층을 기준으로 오름차순 정렬한다. 가장 낮은 층부터 가장 높은 층까지 층을 높여가며해당 층을 만들기 위해 쌓아야 하는 블럭 수와 제거해야 하는 블럭 수를 계산해 준다.답과 현재 비용을 비교하여 더 작은 값을 답에 저장해 준다. 원래 같은 층을 가진 칸이 몇 개가 있는지 구하기 위해TreeM..
[프로그래머스, 67258] [카카오 인턴] 보석 쇼핑 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 81.3 MB, 시간: 43.88 ms사용 알고리즘: 투 포인터, 자료구조 Set을 사용해서 보석의 종류를 구하고투 포인터(left, right)로 모든 종류의 보석을 포함한 구간을 구한다.left ~ right에 포함된 보석의 개수를 Map에 담아준다.만약 Map의 size가 보석의 종류보다 작다면 right을 한 칸 이동해 범위를 늘려주고,Map의 size가 보석의 종류보다 크거나 같다면 ..
[프로그래머스, 131530] 가격대 별 상품 개수 구하기 (mysql)
https://school.programmers.co.kr/learn/courses/30/lessons/131530 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT TRUNCATE(price, -4) AS price_group, COUNT(product_id) as productsFROM productGROUP BY TRUNCATE(price, -4)ORDER BY price_group
[프로그래머스, 12981] 영어 끝말잇기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 74.4 MB, 시간: 0.15 ms사용 알고리즘: 문자열 import java.util.*;class Solution { public int[] solution(int n, String[] words) { int[] answer = new int[2]; // 나왔던 단어를 담아두는 set Set isUsed = new HashSet(); ..
[프로그래머스, 12919] 서울에서 김서방 찾기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 79.9 MB, 시간: 13.97 ms사용 알고리즘: 문자열 class Solution { public String solution(String[] seoul) { String answer = ""; for(int i = 0; i