목록알고리즘 문제 (57)
성장일기
https://www.acmicpc.net/problem/2615 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 🧨19 * 19의 오목판에 검은 바둑알은 1, 흰 바둑알은 2로 표시된다. 검은 바둑알이 이겼을 경우 1, 흰 바둑알이 이겼을 경우 2, 승부가 결정나지 않았을 경우 0을 출력 다섯 개의 바둑알 중에서 가장 왼쪽에 있는 바둑알을 출력! 위 조건을 못봐서 한참 헤메었다. ✨ 육목은 X → 같은방향의 위, 아래 돌을 확인해줘야 함위에서부터 열방향으로 탐색하기 때문에 왼쪽 아래, 아래, 오른쪽 아래, ..
https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 🧨 집의 개수 N개, 공유기의 개수C개가 들어오고 집의 좌표가 N개만큼 주어진다. 인접한 두 공유기 사이의 최대 거리 찾기 ✨이분탐색을 위해 먼저 정렬 (원래 target값을 찾는 이분탐색만 해보다가 최대 거리를 찾으려니 어려웠다. 아마 알고리즘 분류에 이분탐색이 없었으면 한참 헤맸을 듯 하다) import sys input = sys.stdin..
아니야,,, 실력이 넘 없는데 골드4라니,, 누가 티어물어보면 실버4라고 해야겠다,,,😥 골드5는 엄청 기뻤는데 골드4는 하나도 기쁘지않다
https://www.acmicpc.net/problem/17299 어렵다 어려워 스택을 활용하는건 아직 너무 어렵다 Q> 주어진 수열에서 오른쪽에 있으면서 등장한 횟수가 F(Aj) 보다 큰 수 중 가장 왼쪽에 있는 수 없는 경우 -1 ✨ 리스트로는 시간초과😥 => 딕셔너리로 풀어야 함 import sys from collections import Counter input = sys.stdin.readline n = int(input().rstrip()) nums = list(map(int,input().split())) cnt_nums = dict(Counter(nums)) # 숫자의 갯수로 딕셔너리 만들기 #print(cnt_nums) # for cnt in nums: # cnt_nums.append..
https://www.acmicpc.net/problem/1874 Q> 기본 스택 문제 1부터 n까지 수를 스택에 넣었다가 뽑아서 늘어놓음으로써 하나의 수열을 만듦 어떤 순서로 push와 pop을 해야하는지 작성 push는 +로 pop은 -로 표현, 불가능한 경우 NO 💥 출력 초과 코드 NO인 경우 NO만 출력되어야 하는데 앞의 연산이 모두 출력됨 import sys input = sys.stdin.readline n = int(input().rstrip()) stack = [] cnt = 1 for i in range(n): data = int(input().rstrip()) while cnt
https://www.acmicpc.net/problem/6064 애증의 카잉달력 Q> M,N보다 작거나 같은 두 숫자 x,y를 가지고 년도를 표현 일 때 종말의 날 x에 10을 계속 더해주고 12로 나누었을 때 나머지가 y와 같으면 (10i+x)가 k가 된다 -> (10*i + x) % 12 == y -> j는 결국 12의 배수이므로 12로 나누어줌 2. 결국 위 식은 -> (10*i + x)에 y를 빼주고 12로 나누면 0으로 나눠떨어진다는 말이 된다 -> (10*i + x - y) % 12 ==0 이 되는 것 def gcd(a,b): if b == 0: return a else: return gcd(b,a%b) def lcm(a,b): return (a * b) // gcd(a,b) ''' 갑자 구..