https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net [풀이] N과 M은 100만개까지 입력이 가능하므로 '수첩1'을 정렬하여 이분탐색으로 '수첩2'에 해당하는 값을 찾았다. 찾은 값은 StringBuffer에 담았으며 이를 \n을 추가해서 답을 얻었다. 마지막에 \n이 있으면 틀렸다고 나와서 어쩔수 없이 if 조건문에 마지막의 경우 \n을 추가하지 않도록 했다. [코드] import java.io.BufferedReader; import java.io...
https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net [풀이] 정렬의 기준을 정할 수 있는지, 없는지에 대한 공부를 할 수 있는 문제였다. Comparator 인터페이스를 통해 정렬의 기준을 문제에서 주어진 조건에 맞춰서 정렬하였다. (Comparator 인터페이스를 사용하는 법을 익히기 위한 연습문제로 좋은 것 같다!) [코드] import java.util.Arrays; import java...
https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 1,000보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루 www.acmicpc.net [풀이] Comparator 인터페이스를 오버라이딩하여 정렬 조건을 문제에서 주어진 조건에 맞게 설정하면 된다. 정렬의 조건을 정의할 수 있는지 없는지를 판단하는 문제였다. 나의 경우에는 Comparator 인터페이스를 오버라이딩하여 사용하였지만, 다른 분들의 코드를 살펴보니, 다른 방법으로 푸신 분도 많았다. 합을 판단할 때는 변수를 선언해서 조건문에서 문자인지, 숫자인지 판단하여 더하..
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net [풀이] 브루트포스 알고리즘 문제이며, 확인해야할 체스판의 크기는 8 * 8로 고정되어있으므로 이에 맞게 인덱스에 7을 더해줘야한다. solve 메소드에서의 for 반복문의 인덱스는 크기가 8인 체스판이므로 이에 맞게 인덱스를 정한다. 이 메소드에서 지금의 판의 값과 그 다음 비교할 값은 달라야 한다. 하지만 같다면 count변수에 1을 더해준다. 그러므로, boolean 변수를 계속 변형..
https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net [풀이] 브루트포스 알고리즘 문제이며, while 반복문에서 숫자를 하나씩 증가하면서 조건을 확인해야 한다. 조건은, 666이라는 숫자가 포함되어있는지 contains() 메소드를 이용해서 확인하면 된다. [코드] import java.io.*; public class Main { public static void main(String[] args) throws IOException { Buff..
https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net [풀이] A의 문자열이 더 짧으므로 B의 문자열의 앞부분부터 A의 문자열 길이만큼 for 반복문으로 비교하면된다. B의 문자열의 인덱스를 시도한 횟수만큼 더해주는 것에 신경써야한다. [주의해야할 부분] 문자열의 인덱스만 신경쓰면 될 것이라 생각한다. [코드] import java.io.*; import java.util.StringTokenizer; publ..