알고리즘/백준 알고리즘
-
[java] 백준 알고리즘 2750번 수 정렬하기 풀이알고리즘/백준 알고리즘 2018. 6. 4. 19:36
숫자의 길이만큼 for문을 돌리면 제일 큰 숫자가 마지막으로 가게 할 수 있다. 하지만 모든 숫자가 오름차순으로 정렬해야하기 때문에 이중for문으로 돌려준다. * 풀이 소스 123456789101112131415161718192021222324252627282930313233343536public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter..
-
[java] 백준 알고리즘 2748번 피보나치 수 2 풀이알고리즘/백준 알고리즘 2018. 6. 4. 15:15
다이나믹 프로그래밍 문제를 푸는 방식과 유사하다. * 풀이 소스 123456789101112131415161718192021public class Baekjoon2748{ public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); long[] fibonacci = new long[..
-
[java] 백준 알고리즘 1475번 방 번호 풀이알고리즘/백준 알고리즘 2018. 5. 31. 11:19
주의할 점은 1. 6, 9는 대체될 수 있다. 2. 중복된 수가 나와서 새로운 세트를 구입했더라도 사용하지 않은 이전 세트의 숫자를 사용할 수 있다. if문으로 9 혹은 6이 왔을 때 사용하지 않은 반대의 숫자가 있다면 대체될 수 있게 만들었다. 구입한 세트만큼 플라스틱 숫자를 사용하였으면 새로운 세트를 구입하도록 만들었다. 구입한 세트만큼 사용하지 않은 플라스틱 숫자가 있으면 사용하도록 만들고 그만큼 플라스틱 숫자를 사용했다고 1씩 추가했다. * 풀이 소스 12345678910111213141516171819202122232425262728293031323334public class Baekjoon1475 { public static void main(String[] args) throws Number..
-
[java] 백준 알고리즘 2775번 부녀회장이 될테야 풀이알고리즘/백준 알고리즘 2018. 5. 31. 11:10
문제를 읽어보면, 0층은 호수와 사람이 사는 수가 같다. 모든 층의 1호는 1명만 산다. 초기세팅은 이렇게 위와 같이 만들어 주면 되겠다. 이중배열로 해결하면 되는 문제! 일단 몇개 그려보면 왼쪽에 사는 사람과 아래층 사람을 더하면 지금 사는 곳에 살아야 할 사람의 수가 나온다. 예시) 4층 1명 6명 21명 56명 3층 1명 5명 15명 35명 2층 1명 4명 10명 20명 1층 1명 3명 6명 10명 0층 1명 2명 3명 5명 아래쪽 층의 사람 수와 -1 호수의 사람 수를 더하면 현재 사람 수를 구할 수 있다. * 풀이 소스 1234567891011121314151617181920212223242526272829303132333435public class Baekjoon2775 { public sta..
-
[java] 백준 알고리즘 1011번 Fly me to the Alpha Centauri 풀이알고리즘/백준 알고리즘 2018. 5. 30. 16:13
노가다겠지만, 거리가 1~25까지 최소 작동 회수를 구해보면 좋을 듯 싶다. 종이에 옮겨놓으면 그나마 이해가 될 때가 많다. 0~1, 0~2, 0~3, 0~4 쭉쭉 최소 작동 회수를 구해본다. 0에서 해도 되는 이유는 결국 거리를 얼만큼 최소로 이동하느냐기 때문에 45~50이 입력되든 0~5가 입력되든 거리는 5라서 상관이 없다. 쭉쭉 구하다보면 완벽한 데칼코마니가 되는 순간 이후부터 최소 작동회수가 올라간다. 예시) 0에서 1(총 1번): 1 0에서 2(총 2번): 11 0에서 3(총 3번): 111 0에서 4(총 3번): 121 0에서 5(총 4번): 1211 0에서 6(총 4번): 1221 0에서 7(총 5번): 12211....(중략).0에서 12(총 6번): 123321 0에서 13(총 7번):..
-
[java] 백준 알고리즘 1193번 분수찾기 풀이알고리즘/백준 알고리즘 2018. 5. 30. 15:59
표를 보면 0행과 0열의 숫자가 올라갈수록 분수가 몇번째인지 규칙이 있다. 대각선으로 오르락 내리락하는 걸 볼 수 있는데, 열쪽에서 행쪽으로 대각선으로 내려오면 다음 분수는 바로 행의 아래부터 시작해서 열쪽으로 올라가는 형태다. 행쪽에서 대각선으로 열쪽으로 올라가면 다음 분수는 열의 바로 오른쪽부터 시작하는 형태다. 등차수열로 올라가는 수와 +1을 반복하면서 분수가 몇번째인지 기록하게 된다. 행이 홀수번째면 +1, 행이 짝수번째면 등차가 4로 올라가는 숫자의 합이다. 그에 맞춰 열도 행이 홀수번째면 등차가 4로 올라가는 숫자의 합이고 짝수번째면 +1이 된다. ***** 그래서 입력된 숫자가 행과 열의 사이에 있다는 걸 알게된 순간 break를 걸어 분자와 분모를 찾아준다. 12345678910111213..
-
[java] 백준 알고리즘 10250번 ACM호텔 풀이알고리즘/백준 알고리즘 2018. 5. 29. 21:12
배당된 선착순만큼 높이를 나눠주면 금방 규칙을 알 수 있는 문제였다. * 풀이 소스 12345678910111213141516171819202122232425262728293031323334353637public class Baekjoon10250 { static StringTokenizer st; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); st = new StringToken..
-
[java] 백준 알고리즘 15802번 타노스 풀이알고리즘/백준 알고리즘 2018. 5. 28. 11:18
문제가 너무 웃겼다. 최근에 어벤져스를 보고 와서 그런가 문제 내용 공감 100% 웃겨서 바로 풀어봤는데, 백준에서 돌린 출력 결과는 알 수 없으니 난 살았을까 죽었을까 ㅋㅋ -----수정함 백준 알고리즘이 다시 들어가봤더니 재채점 되어있었고 틀렸다고 표시.. 랜덤으로 해결했을 경우를 틀렸다고 기준을 바꿨다고 했다. 다시 풀었다. 입력은 주어지지 않아도 입력은 받는 걸로 구현해야 하는 것 같았다. 거기에 어떤 것을 입력했을 때 1을 출력할지 0을 출력할지도 정해주어야 하는 것 같았다. 내 이름을 넣으면 살고 아니면 죽는걸로 해결 ^^ 풀이소스에서는 블로그 이름으로 처리ㅎㅎ * 풀이 소스 12345678910111213141516171819public class Baekjoon15802 { public s..