목록파이썬 (4)
Kelly's journey to a coding master

문제https://www.acmicpc.net/problem/17143소감시뮬레이션 알고리즘으로 분류되는 문제들의 특징을 검색해본 적 있다. 머리를 많이 굴릴 필요는 없지만 코드가 매우 길다는 점이다. 그런데 이 문제는 머리를 좀 써야 했다. 특정 부분에서 시간 복잡도를 줄여야 했는데, 그 부분에 직접 구상한 수학 공식을 적용해야 했기 때문이다. 아래에서 코드를 통해 설명을 이어나가겠다.코드import sysinput = sys.stdin.readlinedef fish(sec): for i in range(1, R+1): if graph[i][sec]: size = shark_info[graph[i][sec]][1] graph[i][sec] = 0..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr KAKAO TECH 홈페이지의 문제 해설 각 개인 정보가 수집된 날과 약관 종류로부터 보관 가능 날짜를 구하고, 오늘 날짜가 보관 가능 날짜를 지났는지를 구하면 되는 문제입니다. 개인 정보의 유효기간은 해시 테이블 등의 방법으로 구할 수 있습니다. 날짜를 비교할 때 YYYY.MM.DD 형태 그대로 비교해도 되지만, 2000년 1월 1일로부터 며칠이 흘렀는지를 계산하면 정수 형태로 쉽게 비교..
C언어에서는 직접 구현해야 하는 기능들을 파이썬에서는 내장함수을 통해 쉽게 접근이 가능하다. 그런데 파이썬의 편리한 함수들을 사용하다보면 시간복잡도에 대한 우려를 하게 된다. 파이썬이 워낙 사용자에게 친화적인 언어이다보니 나도 모르게 컴퓨터에게는 과중한 일을 시키고 있을지도 모르니 말이다. C언어에서 배운 구현 방식을 통해 파이썬에서 사용하는 함수들의 시간복잡도를 예상하곤 하는데, 그러던 중 파이썬에서 자주 사용되는 len() 함수의 시간복잡도에 대해 궁금증이 생겼다. 분명 C언어에서 리스트의 길이를 구할 때는 리스트를 traverse하면서 길이를 구하게 되는데, 이 경우 시간복잡도가 해당 함수를 불러올 때마다 O(N)이 될 것이고 이렇게 되면 함수를 매번 호출하기가 부담스러워질 수 밖에 없다. 여러 파..
[문제] 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net [첫번째 시도] 시간초과 import sys # [dist 함수] 두 위치 간의 거리 반환 def dist(a, b): result = abs(a[0] - b[0]) + abs(a[1] - b[1]) return result def dfs(h, chicken_dist): global min_sol if (h == n_house): if (chicken_dist min_sol): continue if (visited[c] == 0) a..