Coding Test 110

[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..

[프로그래머스 / Java] Lv.1 N개의 최소공배수

Question https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm배열의 길이가 1이면, 그 원소 자체가 최소공배수이므로 바로 반환한다.배열의 길이가 2 이상이면, 앞의 두 원소의 최대공약수(GCD)를 구한 뒤,두 원소의 최소공배수(LCM)를 (a * b) / gcd(a, b) 공식으로 구한다.배열의 길이가 3 이상일 경우,앞서 구한 최소공배수(answer)와 다음 원소의 최대공약수(GCD)를 구한다.(answer * arr[i]) / gcd(answer, arr[i])로 새로운 최소공배..

[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..

[프로그래머스 / Java] Lv.1 카드 뭉치

Question https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm주어진 배열 cards1과 cards2는 0번 인덱스부터 차례대로 사용해야 하므로, 현재 위치를 가리킬 변수를 각각 선언한다.goal 배열을 순서대로 순회하면서, 현재 문자열이 cards1[c1] 혹은 cards2[c2]와 일치하는지 비교한다.일치한다면 해당 배열의 인덱스 변수를 하나 증가시켜 다음 요소를 가리키게 한다.어느 쪽과도 일치하지 않으면 더 이상 goal을 만들 수 없으므로 "No"를 반환한다.끝까지 순회하며 ..

[프로그래머스 / Java] Lv.1 명예의 전당(1)

Question https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm일차별로 최소값을 구해야하므로, score의 길이만큼 answer 배열을 선언한다.ArrayList를 활용해 k - 1번째 인덱스까지는 명예의 전당 rank에 저장한다.List의 Collenctions.min() 메서드를 사용해 최소값을 쉽게 구할 수 있다.k번째 인덱스 부터는 저장된 명예의 전당 배열의 최솟값과 비교하여 작다면, 최솟값과 교체하여 저장한다.기록된 rank에서 최소값을 차례대로 answer에 저장한다.Co..

[프로그래머스 / Java] Lv.1 문자열 내 마음대로 정렬하기

Question https://school.programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 | 프로그래머스 스쿨개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!school.programmers.co.krAlgorithmArrays.sort() 메서드를 사용해 오름차순 정렬할 수 있게 기존 strings 배열의 각 데이터 맨 앞에 n번째 인덱스에 해당하는 문자(char)를 붙여준다.Arrays.sort()는 배열 요소를 기본 정렬 규칙(숫자는 크기, 문자열은 사전순)에 따라 오름차순으로 정렬한다.Arrays.sort() 메서드로 오름차순 정..

[프로그래머스 / Java] Lv.1 콜라 문제

Question https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm초기화총 받은 콜라 개수를 저장할 변수 answer = 0.교환 반복현재 빈 병 n이 교환 기준 a 이상이면 계속 반복한다.교환 가능한 콜라 계산n / a 번 교환할 수 있다.한 번 교환마다 b병의 콜라를 얻으므로, 총 (n / a) * b 병의 콜라를 받는다.이 값을 answer에 누적한다.빈 병 갱신새로 받은 콜라를 마시면 (n / a) * b 개의 빈 병이 생긴다.교환 후 남은 빈 병은 n % a 개다.따라서 새로운..

[프로그래머스 / Java] Lv.1 K번째수

Question https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm결과 배열 초기화commands의 길이만큼 결과 배열 answer를 만든다.명령(commands) 순회각 명령은 [i, j, k] 형태다.부분 배열 추출원본 배열 array에서 i번째부터 j번째까지 자른다.단, 자바 배열 인덱스는 0부터 시작하므로 i-1을 시작 인덱스로 사용한다.부분 배열 정렬잘라낸 배열을 오름차순으로 정렬한다.k번째 수 선택정렬된 배열에서 k번째(1-based index)의 수를 뽑아 answer에 저장..