코딩테스트

문제 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net 코드 My answer import sys from collections import deque input = sys.stdin.readline N=int(input()) graph=[int(input()) for _ in range(N)] graph.insert(0,0) visit=[0 for _ in range(N+1)] def dfs(idx): if(visit[graph[idx]]==0): visit[graph[idx]]=1 tmp.app..
문제 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 코드 My answer (bfs 통과) import sys from collections import deque input= sys.stdin.readline def bfs(x,y): Q=deque() Q.append((x,y)) visit[x][y]=1 while Q: x,y=Q.popleft() for i in range(4): n_x,n_y=x+direct[i][0],y+direct[i][1] if(0
문제 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 코드 My answer import sys from collections import deque input= sys.stdin.readline direct=[[1,0],[-1,0],[0,1],[0,-1],[1,-1],[1,1],[-1,-1],[-1,1]] def bfs(x,y): Q=deque() Q.append((x,y)) visit[x][y]=1 while Q: x,y=Q.popleft() for i in range(8): n_x,n_y=x+dir..
문제 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 코드 My answer import sys from collections import deque input= sys.stdin.readline n=int(input()) graph=[input().rstrip() for _ in range(n)] visit=[[0]*(n) for _ in range(n)] direct=[[0,1],[0,-1],[1,0],[-1,0]] answer=[] def bfs(x,y): Q=deque() Q.append((x,y)) v..
문제 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 코드 My answer import sys from collections import deque input= sys.stdin.readline n,m=map(int,input().split()) graph=[input().rstrip() for _ in range(n)] visit=[[0]*(m) for _ in range(n)] direct=[[0,1],[0,-1],[1,0],[-1,0]] def bfs(x,y): Q=deque() Q.append((x,y)) visit[x][y]=1 ..
첫번째 알고리즘은 교재의 chapter3에 해당하는 그리디이다. Greedy(그리디)는 쉽게 말해서 "당장 좋은 것만 선택하는 것 == 현재 상황에서 지금 당장 좋은 것만 고르는 것" 우선 그리디는 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달하는데, 그렇기 때문에 최종적(전역적)으로 최적이라는 보장은 없다. 그러나 대부분 그리디로 풀 수 있는 문제들은 "가장 큰 순서대로", "가장 작은 순서대로" 이런 조건을 제공해준다. 그리디의 대표적인 문제로 [거스름돈]이 있다. 거스름돈(p 87) 🔔 문제 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한..
창빵맨
'코딩테스트' 카테고리의 글 목록 (7 Page)