백준 251

[백준, 자바, 11057번] 오르막 수

풀이처음에는 N이 1000까지 가는데 해당 풀이가 괜찮으려나 싶었는데잘 되어서 문제없이 해결.우선 길이 10인 배열의 각 인덱스 값을 1로 만들어 두고N에 따라 while문을 반복하여 문제 해결하고자 함.그리고 아래 코드에서 코드를 더 가독성 좋게하려면,while 문에 else 를 없애고, 그냥 if 절 안의 반복문만 사용하면 됨구분한 이유는 계속 쓸때없이 조건문 거치는게 별로여서 그냥 구분 함. import java.util.*;public class _11057 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] li ..

알고리즘 2024.10.23

[백준, 자바, 1463번] 1로 만들기

풀이뭔가 시간 제한이 짧아서 걱정했지만,간단히 해결 가능했음.우선 bfs처럼 deque에 추가하기 전에 추가할 값에 해당하는 li의 index를 변경 후 추가이렇게 함으로써 같은 걸, 추가하지 않고 빠르게 해결하고자 했음. import java.util.*;public class _1463 { static Deque> dq = new ArrayDeque(); public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); boolean[] li = new boolean[N+1]; dq.add(new ArrayList(Arrays.a..

알고리즘 2024.10.23

[백준, 자바, 1780번] 종이의 개수

풀이이번 문제는 크게 설명할 부분은 없지만,그냥 주어지는 종이를 확인 후 서로 다른 것이 확인되면state를 변경 후 탈출하는 조건을 걸어 조금 더 빠르게 해결하고자 했으며만약 state가 false인 경우, 해당 종이를 9분할 하여 다시 확인하며 해결. import java.io.*;import java.util.*;public class _1780 { static int[][] mtx; static int N; static int[] result = {0,0,0}; public static void main(String[] agrs) throws IOException { BufferedReader br = new BufferedReader(new InputStream..

알고리즘 2024.10.23

[백준, 자바, 17478번] 재귀함수가 뭔가요?

풀이흠 뭔가 이런 문제는 풀어야 할지, 말아야 할지 고민이 되는 문제..그냥 아래와 같이 단순하게 풀이. import java.io.*;import java.util.*;public class _17478 { static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static int N; static String act = "____"; static String ment1 = "\"재귀함수가 뭔가요?\""; static String ment2 = "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어."; static String ment3 = "마을..

알고리즘 2024.10.23

[백준, 자바, 2583번] 영역 구하기

풀이해당 문제는 크게 뭐 문제가 있었던 건 없지만입력 값에서 이해를 다르게 해서 뭔가 싶었다.만약 입력값이 0 2 4 4 라면0,2 부터 4,4까지라는 건줄 알았는데2,0 부터 4,4전인 3,3까지라는 말임.그래서 이후 쉽게 해결 import java.io.*;import java.util.*;import java.util.stream.Collectors;public class _2583 { static List result = new ArrayList(); static int M; static int N; static int K; static boolean[][] mtx; static Deque> dq = new ArrayDeque(); static int[] di..

알고리즘 2024.10.22

[백준, 자바, 5635번] 생일

풀이2차원 배열 정렬 문제라서 한 번 풀어봄.다만 처음엔 조건식에 생일인 문자열 타입의 정수를 그대로 비교해서정렬을 했는데, 출력해보니 이상하게 정렬되어서뭐지하고 다시 정수로 형변환 후 시도 해보니원하는 대로 잘 되었다. import java.io.*;import java.util.*;import java.util.Comparator;public class _5635 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int N = Int..

알고리즘 2024.10.16

[백준, 자바, 2003번] 수들의 합 2

풀이처음에는 이전 값에 해당 하는 모든 값을 계속해서 추가한 뒤뭐 어떻게 할 수 있지 않을까 했다가뭔가 생각이 꼬여서 다시 문제를 집중해서 보니누적 합을 시켜놓은 배열에서기준 인덱스 값을 이후 인덱스 값에서 뺀 값과 M을 비교하며 체크여기서 값이 크거나 같다면 우선 break 하여 불필요한 시간을 사용하지 않도록 하여 해결. import java.io.*;import java.util.StringTokenizer;public class _2003 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

알고리즘 2024.10.14

[백준, 자바, 11728번] 스피카

풀이해당 문제는 가장 밝은 별을 뭐 어떻게 찾으라는 거야라고계속해서 찾아봤는데조건데 맞는 별을 찾는 문제였다는 걸 알게 되었음...3개의 연결된 별을 찾고 (여기까진 생각했는데, 여러 개어서 아닌줄....)해당 별에 연결된 별이 사진에 나온 것 처럼1개, 2개, 3개 이렇게 연결되어 있을 경우에 해당 기준 별이스피카라는 말... 그래서 아래와 같이 코드를 작성하여 해결. import java.io.*;import java.util.*;import java.util.stream.Collectors;import java.util.stream.IntStream;public class _21316 { public static void main(String[] args) throws IOException {..

알고리즘 2024.10.14

[백준, 자바, 15723번] n단 논법

풀이해당 문제는 좀 뭔가 특수했음.우선 순서가 정해진 알파벳이 아니기에,배열을 사용하는 것과, 방문 표시를 하기에 고민이 있었음.물론 만들고자 한다면야 아스키코드로 변환하여 할 수도 있었지만,그렇게까지 고려한 문제가 아닌거 같아 넘김그래서 Map을 사용해서 추가다만 다른 건 쉽게 해결했는데, 계속해서 NoSuchElement 에러가 발생하기에뭔가하고 찾아보니... StringTokenizer의 두 번째 인자로 넣는 건char 기준으로 구분하다보니 " is "에서 i와 s로 구분하게 되어서 i is s를 하면 아무것도 없다고 문구가 나오는 것이었음.그래서 split을 사용해서 해결했음. import java.io.*;import java.util.*;public class _15723 { static..

알고리즘 2024.10.14

[백준, 자바, 11728번] 배열 합치기

풀이처음에는 그냥 맥시멈 인자값까지 배열을 만들고배열을 확인하면서 visit으로 체크해서 해결해보려고 했는데범위가 +-1000000000이라서... 오우 하면서 다시 생각해보다가무심코 내려버린 스크롤에 의해... 봐버렸다..투 포인트...그래서 다시 깨달을 수 있었다는 것으로 만족하자고 생각함.그리고 주어지는 배열은 정렬이 되어 있는 배열이기에따로 재귀로 객 배열을 정렬할 필요 없었기에 그냥 넘어가고인덱스 값 비교에 따른 값을 result에 하나씩 추가여기서 처음에 고려하지 못한 점은인덱스를 조기에 다채워서 조건식에 맞지 않을 경우를 예상하지 못함이를 위해 조건식을 추가하여 해결.물론 더 효율적인 방법이 있겠지만, 코드의 중복을 우선은 줄이고자 아래와 같이 해결 import java.io.*;import..

알고리즘 2024.10.12