programmers lv2
[프로그래머스, 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가 같은 팀인지 확인 ..
[프로그래머스, 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
[프로그래머스, 12953] N개의 최소공배수 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 80.3 MB, 시간: 45.88 ms사용 알고리즘: 완전 탐색 arr의 최대 길이가 15이므로 arr 중 최댓값부터 + 1 씩 모든 수를 검사하며 최소공배수를 찾는다.class Solution { public int solution(int[] arr) { // arr에서 가장 큰 수 찾기 int maxNum = 0; for(int a ..
[프로그래머스, 12914] 멀리 뛰기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 80 MB, 시간: 0.21 ms사용 알고리즘: 다이나믹 프로그래밍 i칸으로 이동하는 방법은i - 1칸에서 1칸 뛰는 방법과i - 2칸에서 2칸 뛰는 방법이 있다.dp[i] = dp[i - 1] + dp[i - 2]class Solution { static final int MOD = 1_234_567; public long solution(int n) { ..
[프로그래머스, 250135] [PCCP 기출문제] 3번 / 아날로그 시계 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/250135 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 77.6 MB, 시간: 3.73 ms사용 알고리즘: 구현 시침과 초침이 만나는 경우는 12시 정각 밖에 없다.분침과 초침이 만나는 경우는 만약 현재 5분이라면 초침이 5초에서 6초를 넘어갈 때 만난다.(단, 59분이라면 59초에서 00초로 넘어가는 와중에 만나는 것이 아니라 00초가 딱 됐을 때 만난다.)class Solution { public int solution(int h1, i..
[프로그래머스, 250136] [PCCP 기출문제] 2번 / 석유 시추 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 73.2 MB, 시간: 84.38 ms사용 알고리즘: BFS 아직 발견하지 않은 석유 덩어리를 발견했다면,bfs로 덩어리의 크기를 확인하며 몇 번 열들에 걸쳐져 있는지 체크한다.덩어리의 크기를 다 구했다면, 시추관을 설치했을 때 뽑을 수 있는 석유량을 저장한 배열의 걸쳐져 있는 열들에 덩어리의 크기를 더해준다.import java.util.*;class Solution { st..
[프로그래머스, 42885] 구명보트 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 54.1 MB, 시간: 11.27 ms사용 알고리즘: 투 포인터 일단 사람들의 몸무게를 오름차순으로 정렬한다.그리고 투 포인터를 사용할 건데,하나의 포인터는 현재 가장 가벼운 사람, 다른 하나의 포인터는 현재 가장 무거운 사람을 가리킨다.현재 가장 무거운 사람을 구명보트에 태우고 가장 가벼운 사람이 이 구명보트에 탈 수 있는지 확인한다.탈 수 있다면 함께 태워 보내고 탈 수 없다면 가장 무거운..
[프로그래머스, 12980] 점프와 순간 이동 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 72.6 MB, 시간: 0.04 ms사용 알고리즘: 그리디 알고리즘 n에서 0까지 만들건데2배 순간이동으로 이동할 수 있는 거리라면(2로 나누어 떨어진다면) 무조건 순간이동으로 이동하고,순간이동으로 이동할 수 없는 거리라면(2로 나누어 떨어지지 않는다면) 1칸 점프로 이동한다.public class Solution { public int solution(int n) { ..
[프로그래머스, 42842] 카펫 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 75.5 MB, 시간: 0.05 ms사용 알고리즘: 수학, 완전탐색 yellow의 가로 길이를 x, 세로 길이를 y라고 할 때,yellow = x * y이다. brown은 yellow를 한 줄 감싸고 있으므로 yellow 위아래(x * 2) + yellow 왼쪽오른쪽(y * 2) + 4개의 모서리로 이루어져 있으므로 brown = (x * 2) + (y * 2) + 4이다.이를 만족하는 x와 ..
[프로그래머스, 12973] 짝지어 제거하기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 63 MB, 시간: 62.68 ms사용 알고리즘: 자료구조, 스택 문자열의 문자들을 하나씩 스택에 넣는다.만약 스택의 바로 위에 있는 문자가 현재 스택에 넣으려는 문자와 같다면, 알파벳이 2개 붙어있는 짝을 찾은 것이므로 pop을 통해 짝지어 제거하기를 해준다.그게 아니라면 해당 문자를 push 해준다.import java.util.*;class Solution{ public int..