programmers
-
[Programmers] 블록 이동하기 with PythonPS 2021. 12. 12. 02:28
📌 Programmers - [블록 이동하기] 💡 조건 board의 한 변의 길이는 5 이상 100 이하. board의 원소는 0(이동가능 블록) 또는 1(이동불가 벽). 로봇이 처음에 놓여 있는 칸 (1, 1), (1, 2)는 항상 0으로 주어진다. 로봇은 회전할 수 있다. BFS, 시뮬레이션의 문제 (N, N) 좌표까지 도달하는 최소시간을 구하는 문제 🖥 소스 코드 from collections import deque def get_next_pos(pos, board): next_pos = [] pos = list(pos) pos1_x, pos1_y, pos2_x, pos2_y = pos[0][0], pos[0][1], pos[1][0], pos[1][1] dx = [-1, 1, 0, 0] dy = ..
-
-
[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. 10. 17. 21:12
📌 Programmers - [표 편집] 💡 조건 및 풀이 표의 원본 행의 개수를 나타내는 변수 n 5 ≤ n ≤ 1,000,000 처음에 선택되어 있는 행의 위치 k 0 ≤ k < n 수행한 명령어들이 담긴 문자열 배열 cmd 1 ≤ cmd의 원소 개수 ≤ 200,000 cmd의 각 원소는 "U X", "D X", "C", "Z" 중 하나 Linked List 자료구조 문제 표의 모든 행을 제거하여, 행이 하나도 남지 않는 경우는 입력으로 주어지지 않는다. 원래대로 복구할 행이 없을 때(즉, 삭제된 행이 없을 때) "Z"가 명령어로 주어지는 경우는 없다. 정답은 표의 0행부터 n - 1행까지에 해당되는 O, X를 순서대로 이어붙인 문자열 형태로 return 🖥 소스 코드 class Node: def _..
-
[Programmers] 광고 삽입 with PythonPS 2021. 10. 17. 17:10
📌 Programmers - [광고 삽입] 💡 조건 및 풀이 동영상에 광고를 넣어야한다. 시청자가 가장 많은 구간에 광고를 넣어야한다. = 시청자 수 구간합이 가장 큰 곳에 광고를 넣어야한다. 동영상 재생시간 길이 play_time, 공익광고의 재생시간 길이 adv_time, 시청자들이 해당 동영상을 재생했던 구간 정보 logs 구간합을 구해 답을 이끌어내는 유형의 문제 play_time, adv_time은 길이 8로 고정된 문자열 play_time, adv_time은 HH:MM:SS 형식이며, 00:00:01
-
[Programmers] 순위 검색 with PythonPS 2021. 10. 14. 23:30
📌 Programmers - [순위 검색] 💡 조건 및 풀이 조건을 만족하는 사람 중 코딩테스트 점수를 X점 이상 받은 사람은 모두 몇 명인가? 를 구하는 문제 '-' 표시는 해당 조건을 고려하지 않겠다는 의미. "cpp and - and senior and pizza 500" 은 "cpp로 코딩테스트를 봤으며, 경력은 senior 이면서 소울푸드로 pizza를 선택한 지원자 중 코딩테스트 점수를 500점 이상 받은 사람은 모두 몇 명인가?" 를 의미한다. 브루트포스 알고리즘 유형의 문제에 해당한다. 🖥 소스 코드 from itertools import combinations from bisect import bisect_left def solution(info, query): answer..