https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 풀이 1. 지워야하는 블록 검사 - check() 함수로 블록이 2x2 형태로 붙어있는지 확인한다. 2. 블록 지우기 - popList에 지워질 칸의 행과 열을 저장한다. -> set을 사용하기 위해 튜플 형태로 저장 - set을 사용해 겹치는 부분을 한번만 처리한다. - 지운 칸은 '-'로 표시한다. 3. 블록 내리기 - popList를..
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net import sys N, M = map(int, sys.stdin.readline().split()) r, c, d = map(int, sys.stdin.readline().split()) s = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] #현재 위치 x ..
https://www.acmicpc.net/problem/3190 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. www.acmicpc.net import sys from collections import deque N = int(sys.stdin.readline()) s = [[0] * N for _ in range(N)] for _ in range(int(sys.stdin.readline())): r, c = map(int, sys.stdin.readline().split()) s[r-1][c-1] = 1 change = [] L = int..
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 � www.acmicpc.net import sys, collections s = [] for _ in range(4): s.append(collections.deque(list(input()))) K = int(sys.stdin.readline()) R = [list(map(int, sys.stdin.readline().split())) for _ in range(K)] #왼쪽 톱니바퀴 확인 def left(num, ..
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 www.acmicpc.net *M번째 문서의 중요도가 가장 높을 때까지 문서를 맨 뒤로 재배치(index의 맨 끝) import sys for _ in range(..