백준 251

[백준, 자바, 10825번] 국영수 (2차원 배열 정렬 문제)

풀이2차원 배열 정렬 문제를 계속 찾고 싶었는데내가 원하는 적합한 문제였음.우선 해당 배열에 정수 타입 뿐만 아닌 문자열 타입 데이터도 함께 있는Object배열이기에 더 마음에 들었음사실... 이전 다른 코테에서 2차원 배열 정렬에서 해당 코드를 잊어버려서... 크흑무튼 자바에서 정렬하는 방법이 여러가지 있지만 나는 아래의 정렬처럼 Comparator을 사용해서 각 인자값 별 조건에 따라 정렬하도록 함.(근데 국영수라고 하니까 드라마의 인물이 떠오르긴 하네 ㅎㅎ) import java.io.*;import java.util.*;import java.util.stream.Collectors;public class _10825 { public static void main(String[] args) t..

알고리즘 2024.10.11

[백준, 자바, 17204번] 죽음의 게임

풀이따로 Stack이나 Deque를 사용하지 않아도 될 것 같은 문제라서간단하게 해결했음이유는, 어차피 한 사람이 지목할 수 있는 건 한 사람이기에굳이 배열을 만들 필요가 없다고 판단이후 다른 코드는 따로 풀이하지 않아도 간단하게 해결할 수 있기에 풀이는 생략! import java.io.*;import java.util.Arrays;public class _17204 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] NK = Arrays.stream(br.readLine(..

알고리즘 2024.10.11

[백준, 자바, 1388번] 바닥 장식

풀이따로 어려운 부분은 없었고, 단순히 문제 이해가 처음에는 안되었는데그냥 "단순히 선이 이어져 있으면, 그게 하나의 타일이다" 라고 설명했으면더 쉽게 이해했을듯 하다... ㅋㅋ무튼 그래서 mtx에 대해 기본 타입에선 "-" 만 체크하고이후엔 범위를 변경 후 "ㅣ" 만 체크해서 카운팅하여 해결. import java.io.*;import java.util.*;public class _1388 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int result = 0; S..

알고리즘 2024.10.11

[백준, 자바, 7562번] 나이트의 이동

풀이해당 문제는 SSAFY에서 몇 번 접했던 문제로그냥 기존 4방향으로 가는 걸, 8방향으로 만들어서 적용.다만, ㅋㅋㅋ 오랜만에 알고리즘을 풀다보니위로 가는걸 음수가 아닌 양수로 더하다보니뭔가 의도대로 안되는 걸 조금 늦게 확인함...다른 건 다 유사한 형태의 문제라서 풀이는 생략. import java.io.*;import java.util.*;public class _7562 { static int l; static int[] start; static int[] end; static int[] ni = {-2,-1,1,2,2,1,-1,-2}; static int[] nj = {1,2,2,1,-1,-2,-2,-1}; static int[][] mtx; static..

알고리즘 2024.10.10

[백준, 자바, 16173번] 점프왕 쩰리 (Small)

풀이뭔가 코드를 더 간소화하고 싶었는데, 뭔가 쉽지 않아서아래 코드와 같이 오른쪽으로 가는거, 아래쪽으로 가는거를 조건식을 통해 작성물론... 좀 유사해 보이는 코드라서 찝찝하긴 하지만 머리가 잘 안돌아가는 듯... import java.io.*;import java.util.*;public class _16173 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; String result = "Hing"; int n = In..

알고리즘 2024.10.10

[백준, 자바, 11403번] 경로 찾기

풀이뭔가 메모리 초과나 시간 초과가 발생할 줄 알았지만다행히도 따로 문제가 발생하지 않았음.우선 mtx랑 result를 따로 구분한 건mtx를 result랑 똑같이 할 경우 탐색할 것들이 많아질것 같아 구분했음.그리고 다른점은 뭐 dfs니까 visit로 중복 탐색하지 않도록 하는 것 뺴곤다른 2차원 배열 문제와 같이 해결. import java.io.*;import java.util.*;import java.util.stream.Collectors;public class _11403 { static int n; static int[][] mtx; static int[][] result; static boolean[][] visit; static Deque dq; publi..

알고리즘 2024.10.10

[백준, 자바, 15649번] 구간 합 구하기 4

풀이해당 문제는 누적 값 문제이어도 단순히 주어진 범위의 값을 더하면 되는 거 아님? 하고 접근했는데 시간초과나서 확인해보니까 최악이면 100억번 연산을 해야해서 마사카... 어쩌지 하고 생각해보니그냥 배열의 값을 저장할 때 이전값에 더한 값을 넣고아래와 같이 e 인덱스에 해당하는 배열 값에 s-1 인덱스 값을 빼주면 단순히 해결할 수 있는 문제였음.또한 출력이 많아질 수 도 있기에 bw로 write와 flush로 출력 import java.io.*;import java.util.*;public class _11659 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR..

알고리즘 2024.09.06

[백준, 자바, 1926번] 그림

풀이해당 문제는 bfs 문제로 간단하게 해결했으며확실히 아래 두 방법 중 더 효율적인 건 StringTokenizer 인 걸 느껴서 입력 값이 많으면 많을 수록 이것만 사용할 듯?Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();new StringTokenizer(br.readLine());다른 건 뭐 어렵지 않게 기존 알고있는 개념이라 생략  import java.io.*;import java.util.*;public class _1926 { static int[][] mtx; static boolean[][] visit; static Deque> queue = new ArrayDeque(); ..

알고리즘 2024.09.06

[백준, 자바, 2606번] 바이러스

풀이따로 어려운 부분은 없고 단순하게 bfs로 해결 가능한 문제여기서 다시 기억해둘 것으로 2가지는IntStream.rangeClosed() 에는 map이 아닌 mapToObj인 것Collections로 생성한 배열에 초기 값을 넣어줄 땐 () 안에 Arrays.asList로 추가 가능하다는 것. import java.io.*;import java.util.*;import java.util.stream.*;public class _2606 { static List> nodes; static boolean[] visit; public static void main(String[] args) throws IOException { BufferedReader br = new Buff..

알고리즘 2024.09.06

[백준, 자바, 1072번] 게임 (이분 탐색)

풀이해당 문제를 푼 이유는 그냥 이분 탐색 문제여서 풀었으며특징적인 것을 확인했다.확인한 것으로는 무조건 작거나 같은 것을 묶기보단 가변적으로 생각 회로를 열어두는 것이좋을 것 같다는 생각을 했으며, 수학적인 점으로는 분자와 분모가 같은 값으로 더해질 경우 그에 대한 결과 값을 계속해서 커진다는 것. import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] li = Arrays.stre..

알고리즘 2024.08.27