분류 전체보기
-
-
[백준] 11497 통나무 건너뛰기 with PythonPS 2021. 12. 6. 21:07
📌 BOJ 11497 통나무 건너뛰기 💡 조건 첫 줄에 통나무의 개수를 나타내는 정수 (5 ≤ N ≤ 10,000) 둘째 줄에 각 통나무의 높이를 나타내는 정수 (1 ≤ Li ≤ 100,000) 통나무 건너뛰기의 난이도는 인접한 두 통나무 간의 높이의 차의 최댓값으로 결정된다. 가장 첫 통나무와 가장 마지막 통나무 역시 인접해 있다. 그리디 알고리즘유형의 문제 🖥 소스 코드 from sys import stdin for _ in range(int(stdin.readline())): n = int(stdin.readline()) arr = list(map(int, stdin.readline().split())) arr.sort() res = 0 for i in range(2, n): res = max(re..
-
-
[백준] 2841 외계인의 기타 연주 with PythonPS 2021. 12. 1. 21:51
📌 BOJ 2841 외계인의 기타 연주 💡 조건 멜로디는 음의 연속이고, 각 음은 줄에서 해당하는 프렛을 누르고 줄을 튕기면 연주할 수 있다. 어떤 줄의 프렛을 여러 개 누르고 있다면, 가장 높은 프렛의 음이 발생. 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (N ≤ 500,000, 2 ≤ P ≤ 300,000) 2번 프렛의 음을 연주하려고 한다면, 5번과 7번을 누르던 손가락을 뗀 다음에 2번 프렛을 누르고 연주해야 한다. 손가락의 가장 적게 움직이는 회수를 구하는 프로그램을 작성. Stack, 자료구조 유형의 문제 🖥 소스 코드 from sys import stdin import heapq n, p = map(int, stdin.readline().split()) ..
-
-
[Programmers] 자물쇠와 열쇠 with PythonPS 2021. 11. 29. 20:54
📌 Programmers - [자물쇠와 열쇠] 💡 조건 key는 M x M(3 ≤ M ≤ 20, M은 자연수) 크기 2차원 배열 lock은 N x N(3 ≤ N ≤ 20, N은 자연수) 크기 2차원 배열 M은 항상 N 이하, key와 lock의 원소는 0 또는 1 자물쇠는 홈이 있으며, 열쇠도 돌기가 있다. 열쇠는 회전이 가능하다. 자물쇠 부분이 회전할 수 있는 열쇠와 겹쳐져서 모두 1이 된다면 열 수 있으니 True, 열 수 없다면 False를 반환 구현 & 시뮬레이션 유형의 문제 🖥 소스 코드 def turn_key(l, key): new_key = [item[:] for item in key] for i in range(l): for j in range(l): new_key[i][j] = key[l..
-
-
[Programmers] 후보키 with PythonPS 2021. 11. 27. 21:30
📌 Programmers - [후보키] 💡 조건 relation 은 2차원 문자열 배열이다. 1
-
[Programmers] 오픈채팅방 with PythonPS 2021. 11. 21. 18:18
📌 Programmers - [오픈채팅방] 💡 조건 채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열 record 모든 기록이 처리된 후, 최종적으로 방을 개설한 사람이 보게 되는 메시지를 문자열 배열 형태로 return record는 다음과 같은 문자열이 담긴 배열이며, 길이는 1 이상 100,000 이하 모든 유저는 유저 아이디로 구분한다. 유저 아이디 사용자가 닉네임으로 채팅방에 입장 - "Enter 유저 아이디 닉네임" (ex. "Enter uid1234 Muzi") 구현 유형의 문제 🖥 소스 코드 def solution(record): result = [] answer = [] status = ["님이 들어왔습니다.", "님이 나갔습니다."] id_code = {} for r..
-
[백준] 14725 개미굴 with PythonPS 2021. 11. 21. 17:49
📌 BOJ 14725 개미굴 💡 조건 첫 번째 줄은 로봇 개미가 각 층을 따라 내려오면서 알게 된 먹이의 정보 개수 N >> (1 ≤ N ≤ 1000) 두 번째 줄부터 N+1 번째 줄까지, 각 줄의 시작은 로봇 개미 한마리가 보내준 먹이 정보 개수 K >> (1 ≤ K ≤ 15) 다음 K개의 입력은 로봇 개미가 왼쪽부터 순서대로 각 층마다 지나온 방에 있는 먹이 정보이며 먹이 이름 길이 t >> (1 ≤ t ≤ 15) 트라이(Trie) 자료구조를 사용하는 문제. 🖥 소스 코드 from sys import stdin n = int(stdin.readline()) class Trie: def __init__(self): self.root = {} def insert(self, s): cur_node = se..