알고리즘 432

[baekjoon] 백준 1913번(코틀린): 달팽이

문제 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 알고리즘 - 반복문을 통해 달팽이를 움직인다. - 우/하/좌/상을 현재 길이 만큼 움직인다. - 움직인 후 달팽이의 위치를 왼쪽 모서리로 움직여준다. 코드 package beakjoon.implementation import java.io.BufferedReader import java.io.InputStreamReader import java.nio.Buffer fun main(){ val br = BufferedReader(InputStreamReader..

CodingTest/Baekjoon 2022.08.21

[baekjoon] 백준 1913번(파이썬): 달팽이

문제 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 알고리즘 - 반복문을 통해 달팽이를 움직인다. - 우/하/좌/상을 현재 길이 만큼 움직인다. - 움직인 후 달팽이의 위치를 왼쪽 모서리로 움직여준다. 코드 import sys n = int(sys.stdin.readline()) m = int(sys.stdin.readline()) graph = [[0 for _ in range(n)] for _ in range(n)] # 우/하/좌/상 dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] x ..

CodingTest/Baekjoon 2022.08.20

[programers] 프로그래머스(코틀린) : 가장 먼 노드

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 - 그래프를 표현한 후 bfs 탐색을 통해 문제를 수행한다. 코드 package level3 import java.util.* fun main() { println(Solution().solution(6, arrayOf(intArrayOf(3, 6), intArrayOf(4, 3), intArrayOf(3, 2), intArrayOf(1, 3), intArrayOf(1, 2), intArrayOf(2, 4), intArrayOf(5, 2)))) } class Solution { fun solut..

CodingTest/Baekjoon 2022.08.19

[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