목록분류 전체보기 (157)
원하는 것은 뭐든지
문제 풀이 예상 시간보다 지나가면 다른 해석을 보고 있습니다. 문제풀이문제 해석1. 인원수와 그 인원 수 간의 일부 키 관계가 주어진다. 2. 주어진 관계만으로 내가 몇 번째인지 알 수 있는 번호는 몇 개인지 출력해라.문제 풀이1. 나와 모든 인원의 관계를 명확히 알아야 내가 몇번째 인지 알 수 있다.2. 모든 인원과의 관계를 알기 위해서는 나와 직간접적으로 닿아있어야 한다.3. 나보다 작은 사람보다 작은 사람은 나보다 작다. 반대도 마찬가지4. 해서 나보다 작은 사람과 그사람보다 큰 사람인 경우에 그 사람과의 관계를 저장한다.소스코드package online.judge.baekjoon;import java.io.BufferedReader;import java.io.IOException;import ja..
문제풀이문제 해석1. 공주를 위해 공주가 원하는 기간에 어떤 꽃이든 피어있는 정원을 만들고 싶다. 2. 3월 1일부터 11월 30일 까지는 매일 꽃이 피어있도록 한다. 3. 조건에 맞는 최소의 꽃의 개수를 출력하면 된다. 4. 첫째 줄에 꽃의 개수 N, 다음 줄부터 각 꽃의 피는 날짜와 지는 날짜가 주어진다. 5. 꽃의 개수가 최소가 되는 경우를 출력하라문제풀이1. 문제를 읽으면 그때그때 최적의 해를 찾아 해를 찾는 그리디 알고리즘을 떠올릴 수 있다.2. 개화시기, 낙화시기를 오름차순, 내림차순으로 정렬해서 결정한다.3. 시기가 적합한 꽃들을 찾아간다.4. 꽃 찾지 못하면 0을 출력한다.소스코드package online.judge.baekjoon;import java.io.BufferedReader;im..
문제풀이문제 해석1. N개의 지점이 있고 N개의 지점사이에는 M개의 도로와 W개의 웜홀이 있다.2. M개의 도로를 지나갈 때는 시간이 소요(+)되고 W 웜홀을 통과할 때는 시간 되감기(-)가 된다.3. 시간여행을 해서 출발 위치로 도달하였을 때 시간이 되돌아가 있는 경우가 있는지 확인해라4. 첫째 줄에 테스트 케이스가 주어진다. 두번째 줄에는 N, M, W 개수가 주어지고 밑으로 M의 정보 W의 정보가 주어진다.5. 테스트 케이스마다 시간이 되돌아가는 경우가 있는지 확인하여 YES or NO를 출력해라문제 풀이1. 지점과 도로가 주어지고 음의 가중치를 갖는 것(웜홀)도 있기 때문에 벨만포드 알고리즘을 사용해야겠다고 생각했다.2. 출발 지점과 도착 지점 그리고 가중치를 담기 위해 graph를 `List`..
문제풀이문제 해석1. 모임에서 회장선출을 하려고 하는데 조건이 있다. 2. 아직 서로 모르는 사이가 존재하는데 다리를 건너면 모두가 알 수 있다. 3. 가까운 정도에 따라 점수가 나뉘게 되는데 기준은 아래와 같다. 4. 모두와 친구라면 1점, 한 다리 건너야 하는 친구가 있다면 2점.... 5. 점수가 가장 작은 사람이 회장 후보가 된다. 6. 입력으로 회원의 수와 친구관계가 주어진다. 7. 출력으로 후보의 점수와 몇명인지, 누구누구 인지를 내보낸다.문제 풀이1. 회원의 수가 50이하고 다리를 건너서 안다는 조건 등이 있어 플로이드-워셜을 사용한다. 2. 알고리즘 안에 조건은 이어지는데 원래 값이 없다면 이어지는 값을 그대로 넣고 3. 아니라면 있는 값과 이어지는 값을 더해서 넣는다. 4. 회장 후보들을..