본문 바로가기

PS/BOJ764

[자바] 백준 7595 - Triangles (java) 문제 : boj7595 필요 알고리즘 개념 구현 문제에서 제시된 형태로 별찍기를 해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 하나의 정수만 입력받아 별을 찍을 수 있다면, 여러개의 별을 출력하는건 그냥 반복문이 하나 들어가는 과정일 뿐이다. 그러니 하나의 정수에 대해 별을 찍는 과정만 살펴보자. private void print(int n) { for (int i = 1; i 2022. 12. 7.
[자바] 백준 2941 - 크로아티아 알파벳 (java) 문제 : boj2941 필요 알고리즘 개념 구현, 문자열 문자열을 다루는 구현 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 이 문제의 관건은 크로아티아 알파벳을 변경해서 사용한 부분을 하나의 알파벳으로 세주면 된다. 문자의 갯수만 알면 되므로 다음과 같이 생각해보자. "ljes=njak" -> "?e??ak" (lj, s=, nj 가 ?로 치환되었다.) 즉, 어떤 문자인지는 상관없고 아무튼 크로아티아 알파벳이 쓰.. 2022. 12. 7.
[자바] 백준 23027 - 1번부터 문제의 상태가…? (java) 문제 : boj23027 필요 알고리즘 개념 구현, 문자열 문제에 제시된대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 자바에서 어떠한 문자가 포함되어있는지 확인은 String s에 대해 s.contains("A") 와 같은 식으로 가능하다. 그리고 특정 문자를 모두 특정 문자로 변경하는 것은 s = s.replaceAll("B", "A"); ( 모든 B를 A로 변경 ) 과 같이 가능하다. 위의 사항들을.. 2022. 12. 5.
[자바] 백준 25305 - 커트라인 (java) 문제 : boj25305 필요 알고리즘 개념 정렬, 구현 정렬을 통해 문제에서 제시된 방식대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 1. arr[N] 에 각 학생의 점수를 입력받는다. 2. arr을 정렬한다. 3. 내림차순으로 정렬했다면 앞에서부터 k번째 학생의 점수를 출력한다. 오름차순으로 정렬했다면 뒤에서부터 k번째 학생의 점수를 출력해준다. 코드 : github import java.io.Bu.. 2022. 12. 4.
[자바] 백준 25630 - 팰린드롬 소떡소떡 (java) 문제 : boj25630 필요 알고리즘 개념 구현, 문자열 문자열 파싱을 통해 구현할 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 소떡소떡에서 팰린드롬이 되려면 몇 개를 변경해야 할지 알아내야 한다. [1] 우선 홀수일 경우 중간에 끼워져 있는건 어차피 팰린드롬에 무관하므로 상관 없다 [2] 반반으로 나누자 (필요없는 부분 제외) [3] 한쪽을 거꾸로 돌려서 비교해봤을 때 서로 다른 갯수가 문제에서 원하는 답이다.. 2022. 12. 3.
[자바] 백준 1253 - 좋다 (java) 문제 : boj1253 필요 알고리즘 개념 투 포인터, 이분 탐색, 해싱 등 이하 풀이는 투 포인터 풀이이다. 정렬 투 포인터 또는 이분 탐색 사용시엔 정렬도 필요하다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 말로만 적어보면 간단하다. 1. 입력받은 N개의 값을 정렬한다. 2. idx : 0 to N-1 에 대해 arr[idx]를 제외한 나머지 값들 중 두 개를 합쳐서 arr[idx]가 되는 경우가 존재한다면 cnt+.. 2022. 12. 2.
[자바] 백준 20976 - The Second Largest Integer (java) 문제 : boj20976 필요 알고리즘 개념 구현 문제에서 제시된 대로 구현하면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 일본어 문제지만, 제곧내 이므로 제목과 입출력 예시만 보면 풀 수 있다. 아무튼 3개를 입력받아서 그 중 2번째로 큰 값을 출력하면 된다. 3개의 값을 비교해서 출력해줘도 되고, 그냥 이하 코드처럼 정렬한 후 2번째 값(인덱스1)을 출력해주면 된다. 코드 : github import java... 2022. 12. 2.
[자바] 백준 8949 - 대충 더해 (java) 문제 : boj8949 필요 알고리즘 개념 문자열. 구현 문자열을 파싱할 줄 알아야 풀 수 있다. 이외 로직은 문제에서 제시된 대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 1. 예를들어 A = "123, B = "2495" 라고 해보자. 이 때 문자열 자체로 A = "0123", B = "2495" 처럼 자리수를 동일하게 맞추기 위해 앞에 '0'을 넣어준다고 하자. 2. 그렇다면 A와 B의 길이는 동.. 2022. 11. 30.
[자바] 백준 17071 - 숨바꼭질 5 (java) 문제 : boj17071 필요 알고리즘 개념 그래프, BFS (너비 우선 탐색) 결론적으로 보면 그냥 BFS 문제이다. 다만 아이디어가 좀 필요하다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 생각 과정 및 풀이 이 문제의 경우 상당히 많이 잘못 생각했고, 결론적으로 proof by AC (정답 맞췄으니 증명됬다!) 느낌으로 풀었다 ㅋㅋ. 그러니 풀이를 생각한 과정을 적어보겠다. 정답 코드만 볼꺼면 맨 아래의 코드만 보면 될 .. 2022. 11. 29.
백준 2563 - 색종이 (자바, C, C++, node.js, Kotlin, Python, C#) 문제 : boj2563 필요 알고리즘 개념 구현 문제에 제시된대로 구현을 하면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 가장 쉽게 생각해볼 수 있는건, 100x100 짜리 배열을 만든 후 전부 0 또는 false로 초기화한다. 이후 입력을 받아 10X10 정사각형 모양의 색종이를 직접 배열에 +1 혹은 true로 변경한다. 이후 100x100 배열을 한번 더 순회하면서 0 또는 false가 아닌 배열 값의 수를 .. 2022. 11. 29.