Problem Solving/Programmers
[프로그래머스, 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..
[프로그래머스, 42897] 도둑질 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/42897 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 109 MB, 시간: 45.15 ms사용 알고리즘: 동적계획법(Dynamic Programming) 이 문제를 해결한 기본적인 아이디어는,dp 배열에 i번째 집을 털었을 때의 최댓값, i번째 집을 털지 않았을 때의 최대값을 저장한다.i번째 집을 털기 위해선 이웃한 집을 털 수 없으므로 무조건 i - 1번째 집을 털지 않았을 경우의 최대값을 가져와야 하고i번째 집을 털지 않으면, i - 1번째 ..
[프로그래머스, 12927] 야근 지수 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 86.4 MB, 시간: 217.07 ms사용 알고리즘: 자료구조 무조건 작업량이 많은 작업의 크기를 줄이는 것이 유리하다.따라서 PriorityQueue에 내림차순으로 정렬하여, 현재 작업량이 가장 많이 남은 작업을 꺼내서 1씩 처리하는 과정을 n번 거치면 최소값을 구할 수 있다.import java.util.*;class Solution { public long solution(int ..
[프로그래머스, 12951] JadenCase 문자열 만들기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 74.1 MB, 시간: 0.08 ms사용 알고리즘: 구현 처음엔 StringTokenizer로 공백 기준 문자열을 나눠 첫 문자는 대문자로, 다음 문자들은 소문자로 바꿔주었는데, 여러 테스트케이스가 통과하지 않았다.문제를 다시 읽어보니 공백문자가 연속해서 나올 수 있다는 조건이 있었다.다시 풀 때는 StringTokenizer로 문자를 나누지 않고, 앞에 공백이 있을 경우 한 단어의 첫 문자로..
[프로그래머스, 12954] x만큼 간격이 있는 n개의 숫자 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12954 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 73.6 MB, 시간: 0.05 ms사용 알고리즘: 구현class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; answer[0] = x; for(int i = 1; i
[프로그래머스, 43162] 네트워크 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 93.4 MB, 시간: 0.45 ms사용 알고리즘: 유니온 파인드 먼저 유니온 파인드로 네트워크들을 모두 연결해 준다.이후 유니온 파인드에서 사용한 parent 배열을 순회한다.어느 한 네트워크에서 최고 조상인 parent[i] == i를 찾는다면 answer++ 해준다.class Solution { static int[] parent; public int soluti..