전체 글 544

[programers] 프로그래머스(파이썬) : 가장 먼 노드

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 - 그래프를 표현한 후 bfs 탐색을 통해 문제를 수행한다. - 이때 가까운 노드부터 탐색하기 위해 deque를 사용해준다. 코드 from collections import deque def solution(n, edge): graph = [[] for _ in range(n+1)] visited = [0 for _ in range(n+1)] for a, b in edge: graph[a].append(b) graph[b].append(a) queue = deque([1]) visited[1] ..

[baekjoon] 백준 20006번(코틀린): 랭킹전 대기열

문제 20006번: 랭킹전 대기열 모든 생성된 방에 대해서 게임의 시작 유무와 방에 들어있는 플레이어들의 레벨과 아이디를 출력한다. 시작 유무와 플레이어의 정보들은 줄 바꿈으로 구분되며 레벨과 아이디는 한 줄에서 공백 www.acmicpc.net 알고리즘 - 반복문을 통해 플레이어를 입력받아 방에 넣어준다. - 각 방을 돌면서 조건에 합당하면 넣어준다. - 못 들어간 플레이어가 있다면 새로운 방을 만들어 넣어준다. - 이름 기준으로 정렬 후 출력한다. 코드 package beakjoon.implementation import java.io.BufferedReader import java.io.InputStreamReader import java.util.* import kotlin.math.abs fun..

CodingTest/Baekjoon 2022.08.19

[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