Coding Test/[BAEKJOON] Java 15

[BAEKJOON / Java] 10807. 개수 세기

Question https://www.acmicpc.net/problem/10807Algorithm정수 N을 입력받는다.이후 각 숫자들을 분리하여 저장할 배열의 크기를 지정할 때 사용정수 N개가 공백으로 구분된 한 줄 입력을 읽는다.StringTokenizer를 사용해 입력된 숫자들을 하나씩 분리하여 배열에 저장한다.arr[i] = nextToken() 방식으로 N개를 저장한다.찾고 싶은 정수 b를 입력받는다.배열을 처음부터 끝까지 순회한다.배열의 요소가 b와 같다면 count를 1 증가시킨다.모든 검사 후 count 값을 출력한다.즉, b가 배열에 몇 번 등장했는지 출력한다.입출력 스트림을 정리하고 종료한다.Codeimport java.io.*;import java.util.StringTokenizer..

[BAEKJOON / Java] 10828. 스택

Question https://www.acmicpc.net/problem/10828Algorithm스택 구현Deque (구체적으로 ArrayDeque)를 이용해 스택 기능을 구현push(), pop(), peek() 메서드를 통해 LIFO(Last-In-First-Out, 후입선출) 구조를 유지명령 처리 로직push X → 정수 X를 스택 맨 위에 추가 (stack.push(X))pop → 스택이 비어 있으면 -1, 아니면 맨 위 값을 꺼내서 출력 (stack.pop())size → 현재 스택에 있는 요소 개수를 출력 (stack.size())empty → 스택이 비어 있으면 1, 아니면 0 출력 (stack.isEmpty())top → 스택이 비어 있으면 -1, 아니면 맨 위 값을 출력 (stack.p..

[BAEKJOON / Java] 2292. 벌집

Question https://www.acmicpc.net/problem/2292Algorithm1번에서 1번 이동하는 경우 (2번째 겹) 범위2 에서 1 + ( 6 * 1 ) = 7 사이1번에서 2번 이동하는 경우 (3번째 겹) 범위2번째 겹 + 1 에서 1 + ( 6 * 1 ) + ( 6 * 2 ) = 19 사이1번에서 N번 이동하는 경우 (N번째 겹)N - 1번째 겹 + 1 에서 1 + 6 * (1 + 2 + 3 + ... + (n-1)) 사이while문 사용start = 1, cnt = 0에서 시작매 반복마다 start += 6 × cnt로 다음 겹의 마지막 번호를 갱신갱신 직후 start >= n이면 현재 겹에 포함되므로 종료, 아니면 cnt++ 후 반복Codeimport java.io.Buff..

[BAEKJOON / Java] 11650. 좌표 정렬하기

Question https://www.acmicpc.net/problem/11650Algorithm입력 처리N을 입력받아 좌표 개수를 정한다.크기가 N × 2인 int[][] arr 배열을 만들어 각 좌표 (x, y)를 저장한다.좌표 입력 저장반복문(for)을 돌면서 N개의 줄을 입력받는다.각 줄을 StringTokenizer로 분리해서 arr[i][0] -> x 좌표, arr[i][0] -> x 좌표 로 저장한다.정렬 수행 (Arrays.sort + Comparator)Arrays.sort를 이용하여 arr 배열을 정렬한다.두 좌표의 x 값이 다르면 x 오름차순 정렬두 좌표의 x 값이 다르면 x 오름차순 정렬Codepublic class Main { public static void mai..

[BAEKJOON / Java] 2884. 알람 시계

Question https://www.acmicpc.net/problem/2884Algorithm조건문을 사용한다.분(M)이 45보다 작은 경우시(H)를 1 감소시킨다.만약 시(H)가 0이라면, H를 23으로 바꾼다.분(M)은 60 - (45 - M)으로 계산한다.분(M)이 45 이상인 경우분(M)에서 45를 뺀다.Codeimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { // B..

[BAEKJOON / Java] 2798. 블랙잭

Question https://www.acmicpc.net/problem/2798AlgorithmBruce Force(브루스 포스) 알고리즘 문제가능한 모든 경우의 수를 전부 탐색해서 답을 찾는 방법입력 처리BufferedReader와 StringTokenizer를 사용해 카드 개수 N과 목표 값 M, 그리고 카드 값들을 배열 arr에 입력받는다.브루트 포스 탐색세 장의 카드를 뽑기 위해 삼중 for문(i, j, k)을 사용한다.각 조합마다 arr[i] + arr[j] + arr[k]를 계산한다.조건 검사 및 결과 갱신합이 정확히 M이면 최적해이므로 바로 반환한다.합이 M보다 작고, 지금까지 찾은 최댓값보다 크면 result를 갱신한다.결과 출력모든 경우의 수 탐색 후, 조건에 맞는 최댓값(result)..

[BAEKJOON / Java] 1546. 평균

Question https://www.acmicpc.net/problem/1546Algorithm입력 처리첫 줄에서 시험 과목 개수 N을 입력받는다.둘째 줄에서 N개의 점수를 배열에 저장한다.최댓값 찾기배열을 정렬하여 마지막 원소(arr[N-1])를 최댓값으로 사용한다.(더 효율적으로는 정렬 대신 한 번의 순회로 최댓값을 구할 수도 있다.)점수 변환 및 합산각 점수를 (현재 점수 / 최댓값) * 100으로 변환한다.변환된 점수를 모두 합산한다.평균 계산변환된 점수의 총합을 N으로 나누어 평균을 구한다.출력평균 값을 출력한다.Codeimport java.util.Arrays;import java.io.BufferedReader;import java.io.InputStreamReader;import java..

[BAEKJOON / Java] 8958. OX퀴즈

Question https://www.acmicpc.net/problem/8958Algorithm테스트 케이스 개수 입력받기첫 줄에서 정수 T를 읽는다.각 케이스별 OX 문자열 처리BufferedReader.readLine()으로 문자열 한 줄을 읽는다.문자 순회하며 점수 계산문자열 길이만큼 반복 (for (int i=0; icharAt(i)로 i번째 문자를 꺼낸다.문자가 'O'면: 연속 카운트(count)를 1 증가시키고, 그 값을 점수(score)에 더한다.문자가 'X'면: 연속 카운트(count)를 0으로 초기화한다.케이스별 결과 저장계산된 최종 점수를 출력 버퍼(StringBuilder)에 넣는다.모든 케이스 처리 후 출력System.out.print로 한 번에 결과를 출력한다.Codeimport..

[BAEKJOON / Java] 10809. 알파벳 찾기

Question https://www.acmicpc.net/problem/10809Algorithma-z까지 순회하며 주어진 문자열 S의 각 문자를 찾는다.String 클래스의 indexOf() 메서드를 사용해 해당 문자가 str 안에서 처음 등장하는 위치를 찾는다. indexOf() : 문자열에서 지정된 문자(유니코드 코드 포인트)의 첫 번째 등장 인덱스를 반환, 없으면 -1Codeimport java.io.*;public class Main { public static void main(String[] args) throws IOException { // BufferedReader: 표준 입력(System.in)으로부터 한 줄씩 빠르게 읽기 BufferedReader b..