전체 글 542

[programers] 프로그래머스(파이썬) : 크레인 인형뽑기 게임

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 - 반복문을 통해 크레인의 위치를 이동한다. - 반복문을 통해 크레인으로 뽑을 수 있는 인형을 확인 후 뽑는다. - 뽑은 인형의 개수가 2개 이상이라면 맨 위에 2개의 인형을 비교한다. - 비교 후 같다면 pop() 한 후 인형의 개수만큼 카운트한다. 코드 def solution(board, moves): answer = 0 pick_up = [] # 반복문을 통해 크레인의 위치를 이동 for move in moves: # 크레인이 뽑을 수 있는 인형을 확인 for i in range(len(b..

[baekjoon] 백준 20291번(코틀린): 파일 정리

문제 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 알고리즘 - 반복문을 통해 파일명을 입력받고 '.'을 기준으로 확장자명을 변수에 넣는다. - 딕셔너리를 통해 확장자명에 개수를 카운트한다. - 확장자명을 기준으로 정렬 후 확장자명과 개수를 출력한다. 코드 package beakjoon.implementation import java.io.BufferedReader import java.io.InputStreamReader import java.util.* fun main() { val br = BufferedRea..

CodingTest/Baekjoon 2022.08.28

[baekjoon] 백준 20291번(파이썬): 파일 정리

문제 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 알고리즘 - 반복문을 통해 파일명을 입력받고 '.'을 기준으로 확장자명을 변수에 넣는다. - 딕셔너리를 통해 확장자명에 개수를 카운트한다. - 확장자명을 기준으로 정렬 후 확장자명과 개수를 출력한다. 코드 import sys n = int(sys.stdin.readline()) dic = {} for _ in range(n): pile = str(sys.stdin.readline()).split(".") path = pile[1].rstrip("\n") if pat..

CodingTest/Baekjoon 2022.08.28

[baekjoon] 백준 12933번(코틀린): 오리

문제 12933번: 오리 첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다. www.acmicpc.net 알고리즘 - 반복문을 통해 오리의 울음소리를 확인한다. - 확인은 그 울음의 탐색 유무에 따라 진행한다. - 울음소리가 quack이고 탐색하지 않았다면 카운트한다. 코드 package beakjoon.implementation import java.io.BufferedReader import java.io.InputStreamReader fun main(){ val br = BufferedReader(InputStreamReader(System.`in`)) val duck = br..

CodingTest/Baekjoon 2022.08.27

[baekjoon] 백준 12933번(파이썬): 오리

문제 12933번: 오리 첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다. www.acmicpc.net 알고리즘 - 반복문을 통해 오리의 울음소리를 확인한다. - 확인은 그 울음의 탐색 유무에 따라 진행한다. - 울음소리가 quack이고 탐색하지 않았다면 카운트한다. 코드 import sys def solve(start): global cnt quack = 'quack' j = 0 first = True # 반복문을 통해 탐색 시작 지점부터 울음소리의 끝 지점까지 울음소리 확인 for i in range(start, len(duck)): # 울음 소리가 quack이고 탐색하지 않았다..

CodingTest/Baekjoon 2022.08.25

[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