프로그래머스
[프로그래머스, 12945] 피보나치 수 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 75.6 MB, 시간: 2.59 ms사용 알고리즘: 다이나믹 프로그래밍class Solution { private static final int MOD = 1_234_567; public int solution(int n) { int[] dp = new int[n + 1]; // 피보나치 수를 저장할 dp 배열 dp[1] = 1;..
[프로그래머스, 12933] 정수 내림차순으로 배치하기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12933 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 78.4 MB, 시간: 0.03 ms사용 알고리즘: 구현class Solution { public long solution(long n) { int[] count = new int[10]; // 인덱스에 해당하는 수가 몇 개인지 저장 while(n > 0) { count[(int)(n % 10)]++; n /=..
[프로그래머스, 64063] 호텔 방 배정 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/64063 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 149 MB, 시간: 369.50 ms사용 알고리즘: 구현 map에 방 번호를 key로, key번 방을 선택했을 경우 배정해야 하는 방 번호를 value로 저장한다.key에 해당하는 값이 map에 없다면 아직 key번 방을 배정한 적이 없다고 간주하고 key번 방에 배정을 한 뒤,다음 방 번호인 key + 1을 value로 저장한다.만약 key가 map에 있다면, 이미 key번 방에 배정된 손..
[프로그래머스, 42898] 등굣길 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 51.9 MB, 시간: 0.99 ms사용 알고리즘: 동적계획법(Dynamic Programming) 처음 문제를 풀 때는 BFS로 풀었다.BFS로 사방탐색을 하는 것처럼 이방탐색을 해줬다.(오른쪽, 아래쪽으로만 이동이 가능하니 이방탐색) 정확성 테스트는 모두 통과할 수 있었는데 효율성 테스트는 모두 시간초과가 났다. 그래서 다른 방법을 고민해 봤는데, 생각해 보니 오른쪽, 아래쪽으로만 이동이..
[프로그래머스, 12924] 숫자의 표현 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 52 MB, 시간: 0.54 ms사용 알고리즘: 투 포인터 투 포인터 l과 r을 두고, l부터 r까지 수의 합을 sum에 저장해둔다.sum이 n보다 작다면 r++을 통해 sum값을 키워준다.sum이 n보다 크다면 l++을 통해 sum값을 줄여준다.sum == n을 찾았다면 anwer++ 해준다.class Solution { public int solution(int n) { ..
[프로그래머스, 12932] 자연수 뒤집어 배열로 만들기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12932 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 74.5 MB, 시간: 0.04 ms사용 알고리즘: 구현import java.util.*;class Solution { public int[] solution(long n) { ArrayList list = new ArrayList(); // 맨 뒷자리부터 차례로 list에 넣기 while(n > 0) { ..
[프로그래머스, 42891] 무지의 먹방 라이브 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/42891# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 86.8 MB, 시간: 108.45 ms사용 알고리즘: 구현 우선 남은 음식들을 PriorityQueue(pq)에 담아두고 섭취하는데 가장 짧은 시간이 걸리는 음식을 꺼내 쓸 수 있게 해 준다.현재 남은 음식 중, 섭취하는데 가장 짧은 시간이 걸리는 음식의 섭취 시간을 min이라고 했을 때적어도 min 바퀴 돌 동안 남은 음식들은 모두 섭취 가능한 상태라고 보장할 수 있다. (min * pq..
[프로그래머스, 43163] 단어 변환 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 72.4 MB, 시간: 0.69 ms사용 알고리즘: 너비 우선 탐색(BFS) 단어를 하나의 노드로 보고, 단어끼리 하나의 글자만 다르면 간선으로 연결되어 있다고 본다.begin에서 시작해서, 한 글자만 다른 단어들로 이동하면서(bfs) target을 찾아간다.import java.util.*;class Solution { // 변환을 몇 번 거쳐 만든 단어인지 정보를 저장하고 있는..
[프로그래머스, 70129] 이진 변환 반복하기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 81.8 MB, 시간: 28.84 ms사용 알고리즘: 구현import java.util.*;class Solution { public int[] solution(String s) { int[] answer = new int[2]; char[] tmp = s.toCharArray(); // 문자열을 char 배열로 변환 Queue q = ..
[프로그래머스, 12931] 자릿수 더하기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 77.3 MB, 시간: 0.03 ms사용 알고리즘: 문자열import java.util.*;public class Solution { public int solution(int n) { int answer = 0; while(n > 0) { answer += n % 10; n /= 10; } retu..