Problem Solving
[프로그래머스, 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
[프로그래머스, 42894] 블록 게임 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/42894 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 74.1 MB, 시간: 0.90 ms사용 알고리즘: 구현 먼저 블록의 타입 12개의 모양을 위 -> 아래, 왼쪽 -> 오른쪽 순으로 blocks 배열에 정보를 담는다.그리고 처음 발견한 블록에 대해 그 블록이 어떤 타입인지 구할 수 있도록 한다. 또한, 1-1, 1-2, 2-1번 등의 블록은 구조 상 절대 검은 블록을 채워 직사각형 모양을 만들 수 없다.(위에서부터 밑으로 검은 블럭을 떨어뜨려..
[프로그래머스, 64064] 불량 사용자 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 98.7 MB, 시간: 29.14 ms사용 알고리즘: 비트 마스킹, 자료구조, 조합, 문자열 하나의 banned_id에 대해 모든 user_id를 확인하며 가능한 user_id 목록을 구한다.(user_id와 banned_id는 최대 8개의 아이디를 가지고 있고, 각 아이디는 최대 길이 8이므로 충분히 가능) banned_id의 각 아이디에 대칭될 수 있는 user_id 목록은 구했으므로, 가..
[프로그래머스, 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 ..