목록CodingTest (430)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b3s5Pc/btsi5BnhdAy/i6KAOAYXfFSh4hAWjPd3Zk/img.png)
👉 문제링크 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 🔸 문제 분석 🔸 N개의 집에 R,G,B 3가지 색이 연속하지 않도록 칠한다. 각 집의 세 가지 색에 대한 비용이 주어진다. 모든 집을 칠하는 최소비용을 출력한다. 칠하는 경우의 수를 구하면 3x2x2x...x2 = 3x2x(n-1) = 6(n-1) n은 최대 1,000이므로, 칠하는 경우의 수는 최대 5994가지 가지수가 많지 않아 재귀, 백트래킹을 사용한 브루트 포스도 가능할 것 같지만, 시간은 0.5초이므로 DB를 이용한다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bNFISC/btscIItUW10/MSng9kPeTZwGmu2h5DR7m0/img.png)
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 로봇, 길, 장애물의 정보가 담긴 맵 정보와 로봇의 이동 명령이 주어진다. 차례로 명령을 수행해 로봇을 이동시킨다. 명령을 수행했을 때, 로봇이 맵을 벗어나거나, 장애물에 걸린다면 그 명령을 무시한다. 최종 로봇 위치를 반환한다. 🔸 코드 🔸 import java.util.HashMap; import java.util.StringTokenizer; class Solution { public int[] solution(String[] park, String[] routes) { i..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8mCFV/btscGIUf0Bj/h2cZk33eT61FMMYujkMLlK/img.png)
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 사람 이름과 각각의 그리움 점수가 입력된다. 한 사진에서 이름들의 그리움 점수를 모두 합한 값을 구한다. 그리움 점수가 없는 이름이 등장할 수 있다. 해시 맵을 사용해 이름 문자열에 그리움 점수를 저장한다. 🔸 코드 🔸 import java.util.HashMap; class Solution { public int[] solution(String[] name, int[] yearning, String[][] photo) { HashMap hm = new HashMap(); for..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/boTt1A/btscxnqj8eY/htDxIlcIjSlf6QDb169xtK/img.png)
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 🔸 코드 🔸 import java.util.HashMap; class Solution { public String[] solution(String[] players, String[] callings) { HashMap map = new HashMap(); for(int i = 0; i < players.length; i++) { map.put(players[i], i); } for(int i = 0; i < callings.length; i++) { int idx = map.ge..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1x5i0/btsb1Q5Txvc/1hvmdyUcjYx7VVyaHBPKvK/img.png)
👉 문제링크 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 🔸 문제 분석 🔸 N명의 학생들을 키 순서대로 줄을 세운다. 모두의 키 정보가 주어지는 것이 아니라, 두 학생을 비교해서 누가 앞에 오는지에 대한 정보만 주어진다. 위상 정렬 알고리즘에 대한 간단한 문제이다. 키가 큰 학생이 앞에 오는지, 작은 학생이 앞에 오는지에 대한 정보는 없고, 누가 앞으로 오느냐만 주어진다. 따라서 답이 여러가지가 될 수 있으므로 서브테스크 문제이다. BFS로 간단히 풀이할 수 있다..