
[백준] 블랙잭
2022. 2. 3. 23:10
알고리즘/백준
문제 링크 블랙잭 풀이 입력받은 숫자를 리스트로 만들어서 모든 값을 더해 비교하는 식으로 풀이를 진행 3중 for문을 사용하면 쉽게 해결이 가능할거 같다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); Stri..

[HackerRank] Number Line Jumps
2022. 1. 26. 18:40
알고리즘/Other
문제 링크 Number Line Jumps 풀이 - 캥거루 두 마리가 만나는 구간이 있는지 확인하는 문제 - 조금 무식하게 문제에서 주어지는 x1(첫 번째 캥거루의 위치)의 범위를 전부 탐색해서 x2(두 번째 캥거루의 위치)와 같은 값을 나타내는 곳이 있는지 확인 해결 public static String kangaroo(int x1, int v1, int x2, int v2) { if (v1 x2) return "NO"; if (x1 == x2) return "YES"; } return "NO"; } - 무조건 첫번째 캥거루보다 두 번째 캥거루가 먼저 출발하기 때문에 첫 번째 캥거루의 한 번에 뛰는 거리(v1)가 두 번째 캥거루의 뛰는 거리(v2) 보다 커야지 두 캥거루가 만날 가능성이 있다. - 점프..

[HackerRank] Time Conversion
2022. 1. 26. 18:34
알고리즘/Other
문제 링크 Time Conversion 풀이 - 12시 표시 시간을 24시 표기로 변경하는 문제 - hh:mm:ssAM, hh:mm:ssPM 형식으로 값이 입력되면 그걸 HH:mm:ss형식으로 변환해서 반환해주면 된다. - 처음에는 split기준을 글자 하나를 기준으로 했었는데, 그것보다는 좀 더 크게 나눠서 계산하는 게 더 편할 거 같아서 중간에 기준을 변경했다. 해결 public static String timeConversion(String s) { StringBuilder sb = new StringBuilder(); String[] tmp = s.split(":"); if (tmp[2].split("")[2].equals("P") && Integer.parseInt(tmp[0]) < 12) { ..

[HackerRank] Diagonal Difference
2022. 1. 26. 18:27
알고리즘/Other
문제 링크 Diagonal Difference 풀이 - 2차원 배열이 입력되면 대각선 위치에 있는 값을 더한 후 두 대각선의 값의 차를 구하는 문제이다. - 반복문을 사용해서 2차원 배열의 대각선 값을 계산하였다. - 따로 막히는 것 없이 쉽게 쉽게 해결되었다. 해결 public static int diagonalDifference(List arr) { int leftToRightDiagonal = 0; for (int i = 0; i -1; i--) { rightToLeftDia..

[HackerRank] Save the Prisoner!
2022. 1. 26. 17:54
알고리즘/Other
문제 링크 Save the Prisoner! 풀이 - 알고리즘 기법을 사용하기보다 테스트 케이스를 기반으로 수학적으로 접근하였다. - 큐 또는 나머지 연산자를 사용하면 될 거 같다. public static int saveThePrisoner(int n, int m, int s) { return (m % n + s) - 1; } - n(죄수의 수), m(과자의 수), s(시작 위치) - 테스트 케이스 두 개를 기반으로 풀이 했을때 통과하길래 엄청 간단하게 해결한 줄 알고 기뻐했다. - 하지만 늘 그렇듯이 내게 쉬운 문제는 없었다. - 주어진 테스트 케이스는 모두 통과하는데 문제 해결이 안 되는 이런 경우가 알고리즘 풀이하면서 제일 난감하다. 스스로 반례를 찾아야 하니 그게 너무 어렵다. 해결 public..