Algorithm 115

감을 잡았나? (#10026번 적록색약)

#10026번 적록색약 (https://www.acmicpc.net/problem/10026)  그냥 풀었다.dfs를 두 번 돌리면 된다. import syssys.setrecursionlimit(10**6)n = int(input())draw = [[x for x in input()] for __ in range(n)]ans, ans_rg = 0, 0moves = [[-1, 0], [1, 0], [0, -1], [0, 1]]def is_valid(y, x): return (0   시간복잡도고 뭐고 그냥 막 풀었다. (N의 최대치가 100이라서) 근데 풀렸다. 뭐지.. 감을 다시 잡은건가

예외를 찾아내는 능력 (#7569 토마토)

#7569 토마토 (https://www.acmicpc.net/problem/7569) 오랜만에 풀어낸 BFS문제였다. from sys import stdinfrom collections import dequeinput = stdin.readline# 쌓아올려지는 상자의 수를 나타내는 H# M은 상자의 가로 칸의 수# N은 상자의 세로 칸의 수를 나타낸다# 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, 1 ≤ H ≤ 100 이다m, n, h = map(int, input().split())tomato = [] # 토마토 상자 데이터red = deque() # 익은 토마토 데이터# 방문 기록visited = [[[-1 for _ in range(m)] for __ in range(n)] for _..

파이썬 리스트의 원소를 한번에 출력하고 싶다면 (#14940)

#14940 쉬운 최단거리 (https://www.acmicpc.net/problem/14940)  자꾸 이것저것 조건 빼먹어서 은근히 귀찮았던 문제였다. 단순 BFS로 풀이했다.다만 시작 지점이 입력마다 달라질 수 있음을 유의해야하며벽에 가로막혀 도달할 수 없는 지점은 -1로 표기하는 것이 주의해야할 지점이다. h, w = map(int, input().split())maps = []t = []# points = []for r in range(h): tmp = list(map(int, input().split())) for c in range(w): if tmp[c] == 2: # target check t.append([r, c]) tm..

파이썬 정렬이란2 (#11652 카드)

#11652 카드 https://www.acmicpc.net/problem/11652  from sys import stdininput = stdin.readlinen = int(input())nums = dict()for _ in range(n): num = int(input()) if num in nums: nums[num] += 1 else: nums[num] = 1target = list(nums.keys())target.sort(key=lambda x: (nums[x], -x))# print(target)print(target[-1]) 숫자의 개수를 세는 문제였는데,개수가 같은 경우 수의 크기가 작은 것을 출력하는 것이 관건이었다. python sort의..

파이썬 정렬이란 (#10825 국영수)

#10825 국영수 https://www.acmicpc.net/problem/10825  정렬 관련 문제였다.  내 초기 코드는 다음과 같았다. from sys import stdininput = stdin.readlinen = int(input())students = []for _ in range(n): x = input().split() student, grades = x[0], list(map(int, x[1:])) students.append([student] + grades)# 국어 점수가 감소하는 순서로# 국어 점수가 같으면 영어 점수가 증가하는 순서로# 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로# 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단,..

구현 진짜 힘들다.... (#17144 미세먼지 안녕!)

#17144 미세먼지 안녕! https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 토요일에 시도했다가 포기하고 죽어있었다. 뭔가 잘못 구현한 부분이 있었는데 눈에 보이지 않았기 때문이다. 하지만 해결해냈다. 문제는 다음과 같았다. 먼지 데이터를 조금 더 효율적으로 관리하고 싶었다. 그래서 먼지의 위치를 저장한 리스트를 만들었었는데 공기청정기가 작동하게되면 먼지의 위치가 바뀐다. 이걸 반영을 안해줬기 때문에 문제가 발생했다. 이걸 파악한 뒤, 먼지의..

구현은 빡시다. (#15683 감시)

#15683 감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 구현할 내용이 너무 많아서 버거웠다. 하지만 모르겠던 부분은 하나도 없었다. 카메라별로 4개의 방향을 가지기 때문에, (카메라 수)^4 개의 경우의 수가 나온다. 이 경우의 수를 dfs 등의 방법을 통해 전부 구한 다음에 각각의 상황에 맞게 조건문을 작성하여 동작하게 하면 된다. from copy import deepcopy h, w = map(int, input()...

728x90