본문 바로가기

배열

(4)
[Baekjoon] 백준 11536번: 줄 세우기 (JAVA) 문제 11536 11536번: 줄 세우기 이름이 증가하는 순으로 나타나면 INCREASING, 감소하는 순이면 DECREASING을 한 줄에 출력한다. 만약 위의 두 경우가 아니라면 NEITHER를 출력한다. www.acmicpc.net [ 문제 풀이 ] 입력받은 문자열이 내림차순인지 오름차순인지, 아니면 내림차순도 오름차순도 아닌 것인지 체크하는 문제입니다. 먼저, 입력받은 문자열을 String[] 배열에 저장하고, 0번째 인덱스와 1번째 인덱스를 확인해서 오름차순인지 내림차순인지 확인합니다. isIncrease 라는 boolean 타입의 변수를 생성하여 오름차순이면 true, 내림차순이면 false로 저장합니다. 이후 1번째 인덱스부터 (String[] 배열의 길이 - 1) 만큼 순회하며 정렬 기준이..
[Baekjoon] 백준 5052번: 전화번호 목록 (JAVA) 백준 5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net [ 문제 풀이 ] 프로그래머스에도 있는 문제로, 2가지 방법으로 풀 수 있습니다. 먼저 HashSet을 활용하여 String 클래스에 있는 substring()을 이용하여 풀어보겠습니다. HashSet에 전화번호를 저장하고, String[] 에도 저장하여 저장한 번호들을 하나씩 순회하며 0번째 인덱스부터 문자열을 잘라가며 잘린 앞부분의 문자열과 같은 문자열이 있는지 확인하면 됩니다. String[] phonesArr = ne..
[Baekjoon] 백준 11656번: 접미사 배열 (JAVA) 문제 11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net [ 문제 풀이 ] 문자열을 앞에서부터 하나씩 잘라서 뒷부분을 ArrayList에 저장한 후, 정렬해주면 됩니다. String 클래스의 substring()을 활용하여 인덱스를 매개변수로 해서 차례대로 접미사들을 구합니다. Collections.sort()로 ArrayList를 정렬해준 후, 출력해줍니다. ArrayList 대신, String[]을 활용하여 배열에 저장해주는 방법도 있습니다. 이 경우에는 정렬할 때 Arrays.sort()을 사용하면 됩니다. [ 코드 ] 1) ArrayList 사용 import java.io.*..
[Baekjoon] 백준 2234번: 성곽 (JAVA) 문제 2234번 2234번: 성곽 첫째 줄에 두 정수 N, M이 주어진다. 다음 M개의 줄에는 N개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net [ 문제 풀이 ] 1) 방의 개수 / 가장 넓은 방의 넓이 구하기 이 문제에서 벽에 대한 정보를 얻기 위해서는 비트 연산을 이용해야 합니다. 각 4방향(서, 북, 동, 남)이 2^0, 2^1, 2^2, 2^3으로 더해지기 때문에, &와 = N) continue; if (visit[nextR][nextC]) continue; visit[nextR][nextC] = true; queue.offer(new Node(nextR, nextC)); }..