본문 바로가기

Algorithm 💡/Implementation50

[삼성 SW 역량테스트 기출] 고대 문명 유적 탐사 https://www.codetree.ai/training-field/frequent-problems/problems/ancient-ruin-exploration?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.aiimport sysimport copyfrom collections import dequeinput = sys.stdin.readline# 유물 조각은 총 7가지 종류로, 각각 숫자 1부터 7로 표현# 1. 탐사 진행# 3x3 격자 선택 후 시계 방향으로 90도, 180도, 270도.. 2024. 10. 4.
[백준 21609번] 상어 중학교 https://www.acmicpc.net/problem/21609# 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록이 있다.# 일반 블록은 M가지 색상이 있고, 색은 M이하의 자연수로 표현# 검은색 블록은 -1, 무지개 블록은 0으로 표현# 블록 그룹은 연결된 블록의 집합이다. 그룹에는 일반 블록이 적어도 하나 있어야 하며, 일반 블록의 색은 모두 같아야 한다. # 검은색 블록은 포함되면 안 되고, 무지개 블록은 얼마나 들어있든 상관없다. # 그룹에 속한 블록의 개수는 2보다 크거나 같아야 하며, 임의의 한 블록에서 그룹에 속한 인접한 칸으로 이동해서 그룹에 속한 다른 모든 칸으로 이동할 수 있어야 한다.# 블록 그룹의 기준 블록은 무지개 블록이 아닌 .. 2024. 10. 1.
[프로그래머스 Lv.1] 덧칠하기 def solution(n, m, section): answer = 0 painted = 0 for s in section: if s > painted: painted = s+m-1 answer += 1 return answer 2024. 7. 15.
[백준 20056번] 마법사 상어와 파이어볼 https://www.acmicpc.net/problem/20056import sysinput = sys.stdin.readline# 마법사 상어가 크기가 N×N인 격자에 파이어볼 M개를 발사# i번 파이어볼의 위치는 (ri, ci), 질량은 mi이고, 방향은 di, 속력은 si# 1번 행은 N번과 연결되어 있고, 1번 열은 N번 열과 연결# 파이어볼의 방향은 어떤 칸과 인접한 8개의 칸의 방향을 의미# 1. 모든 파이어볼이 자신의 방향 di로 속력 si칸 만큼 이동(이동하는 중에는 같은 칸에 여러 개의 파이어볼이 있을 수도 있다.)# 2. 이동이 모두 끝난 뒤, 2개 이상의 파이어볼이 있는 칸에서는 다음과 같은 일이 일어난다. # 2-1. 같은 칸에 있는 파이어볼은 모두 하나로 합쳐진다. #.. 2024. 7. 11.
[백준 11559번] Puyo Puyo https://www.acmicpc.net/problem/11559import sysfrom collections import dequeinput = sys.stdin.readline# 필드에 여러 가지 색깔의 뿌요를 놓는다# 뿌요는 중력의 영향을 받아 아래에 바닥이나 다른 뿌요가 나올 때까지 아래로 떨어진다.# 뿌요를 놓고 난 후, 같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌요들이 한꺼번에 없어진다# 이때 1연쇄가 시작된다.# 뿌요들이 없어지고 나서 위에 다른 뿌요들이 있다면, 역시 중력의 영향을 받아 차례대로 아래로 떨어지게 된다.# 아래로 떨어지고 나서 다시 같은 색의 뿌요들이 4개 이상 모이게 되면 또 터지게 되는데, 터진 후 뿌요들이 내려오고 다시 터짐을 반복할 때마.. 2024. 7. 1.
[백준 1978번] 소수 찾기 https://www.acmicpc.net/problem/1978import sysinput = sys.stdin.readlinen = int(input())numbers = list(map(int,input().split()))# '1과 자기 자신 외의 약수를 가지지 않는 1보다 큰 자연수count = 0def checkPrime(N): prime_set = set(range(2,N+1)) for i in range(2,N+1): if i in prime_set: prime_set -= set(range(2*i,N+1,i)) if N in prime_set: return True else: return Falsefor num.. 2024. 7. 1.