CodingTest/Baekjoon 385

[baekjoon] 백준 20006번(파이썬): 랭킹전 대기열

문제 20006번: 랭킹전 대기열 모든 생성된 방에 대해서 게임의 시작 유무와 방에 들어있는 플레이어들의 레벨과 아이디를 출력한다. 시작 유무와 플레이어의 정보들은 줄 바꿈으로 구분되며 레벨과 아이디는 한 줄에서 공백 www.acmicpc.net 알고리즘 - 반복문을 통해 플레이어를 입력받아 방에 넣어준다. - 각 방을 돌면서 조건에 합당하면 넣어준다. - 못 들어간 플레이어가 있다면 새로운 방을 만들어 넣어준다. - 이름 기준으로 정렬 후 출력한다. 코드 import sys p, m = map(int, sys.stdin.readline().split()) rooms = [] # 각각의 플레이어를 입력 받아 방에 넣어주기 for _ in range(p): l, n = input().split() # 최초..

CodingTest/Baekjoon 2022.08.19

[baekjoon] 백준 1337번(코틀린): 올바른 배열

문제 1337번: 올바른 배열 첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이 www.acmicpc.net 알고리즘 - 반복문을 통해 배열을 확인한다. - 배열의 각 수에서 시작되는 연속적인 수가 배열에 있는지 확인한다. - 연속적이지 않은 수가 있다면 카운트 후 answer에 추가한다. - answer에 제일 작은 값을 출력한다. 코드 package beakjoon.implementation import java.io.BufferedReader import java.io.InputStreamReader fun main() { val br = ..

CodingTest/Baekjoon 2022.08.16

[baekjoon] 백준 1337번(파이썬): 올바른 배열

문제 1337번: 올바른 배열 첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이 www.acmicpc.net 알고리즘 - 반복문을 통해 배열을 확인한다. - 배열의 각 수에서 시작되는 연속적인 수가 배열에 있는지 확인한다. - 연속적이지 않은 수가 있다면 카운트 후 answer에 추가한다. - answer에 제일 작은 값을 출력한다. 코드 import sys n = int(sys.stdin.readline()) m = sorted(int(sys.stdin.readline()) for _ in range(n)) answer = [] # 반복문을 통..

CodingTest/Baekjoon 2022.08.16

[baekjoon] 백준 1308번(자바): D-Day

문제 1308번: D-Day 첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다. 날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다. 입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다. www.acmicpc.net 알고리즘 - 반복문을 통해 D-Day를 카운트한다. - 매 순간 현재 날짜, 현재 월, 년도를 확인하고 카운트한다. - 확인하는 과정으로는 현재 월의 마지막 날짜인지, 마지막 달의 마지막 날짜인지, 윤년과 평년인지 확인한다. - 현재 날짜와 마지막 날짜가 같다면 D-Day를 출력하고 반복문을 멈춘다. 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import ja..

CodingTest/Baekjoon 2022.08.15

[baekjoon] 백준 2960번(자바): 에라토스테네스의 체

문제 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 알고리즘 - 2중 for문을 통해 문제의 조건을 수행한다. - cnt 변수를 통해 소스를 찾고 k번째 소수라면 그때의 소수를 출력 후 시스템을 종료시킨다. 코드 package implementation; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStr..

CodingTest/Baekjoon 2022.08.14

[baekjoon] 백준 11723번(자바): 집합

문제 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 알고리즘 - 문제의 조건에 맞게 switch문으로 문제를 수행한다. 코드 package implementation; import java.io.*; import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System..

CodingTest/Baekjoon 2022.08.13

[baekjoon] 백준 1205번(파이썬): 등수 구하기

문제 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 알고리즘 - 랭킹 리스트에 점수가 있는지 확인하고 점수가 없다면 무조건 1등이므로 1을 출력한다. - 랭킹 리스트에 점수가 있다면 랭킹 리스트에 새로운 점수를 넣고 새로운 점수의 등수를 확인한다. - 등수가 랭킹의 올라갈 수 있는 등수보다 크다면 -1을 출력한다. - 랭킹 리스트의 길이와 랭킹의 올라갈 수 있는 등수의 길이가 같고 마지막 등수가 새로운 점수의 등수와 같다면 즉, 새로운 점수가 마지막 점수와 동점이라면 -1을 출력..

CodingTest/Baekjoon 2022.08.10

[baekjoon] 백준 1063번(파이썬): 킹

문제 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 알고리즘 - 킹의 자표와 돌의 좌표를 아스키코드를 통해 x, y형태로 바꾼다. - 킹이 움직이는 명령을 딕셔너리로 받아서 좌표 형태로 바꾼다. - 반복문을 통해 명령을 입력받고 킹의 좌표와 돌의 좌표를 움직여준다. 코드 import sys k, s, n = map(str, sys.stdin.readline().split()) k = list(map(int, [ord(k[0]) - 64, k[1]])) s = list(map(int, [ord(s[0]) - 64, s[..

CodingTest/Baekjoon 2022.08.09

[baekjoon] 백준 1929번(파이썬): 소수 구하기

문제 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 알고리즘 - 일반적으로 소수를 구하는 방법으로 구하게 되면 시간 복잡도가 O(n^2)이고 에라토스테네스의 체를 통해 구하게 되면 시간 복잡도가 O(log n)이다. - 따라서 에라토스테네스의 체를 통해 소수를 구한다. - 구한 소수가 범위 내에 있다면 출력한다. 코드 import sys m, n = map(int, sys.stdin.readline().split()) dp = [False, False] + [True] * 1000001 primes = [] # 에라토스테네스의 체를 통해 ..

CodingTest/Baekjoon 2022.08.07

[baekjoon] 백준 7568번(파이썬): 덩치

문제 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 알고리즘 - 반복문을 통해 모든 몸무게와 키를 비교한다. - 비교하는 몸무게와 키가 더 작다면 그보다 큰 값이 있는 것으로 등수를 카운트해준다. 코드 import sys n = int(sys.stdin.readline()) m = [list(map(int, sys.stdin.readline().split())) for _ in range(n)] answer = [] # 반복문을 통해 몸무게와 키를 확인 for x, y in m: cnt = 1 ..

CodingTest/Baekjoon 2022.07.21