본문 바로가기

728x90
반응형
SMALL

코테

(25)
시공의 돌풍 Well know의 청소기 문제였다. 한 번 봤던 문제라서 1시간 정도 걸렸다. 개선점을 찾으려고 chatGPT 에게 코드 리뷰를 부탁 했는데, 웬일로 칭찬????을 하나 싶었으나... 순살치킨 되버렸다... 그만 때려..ㅠㅠㅠ 함수 내에서 전역 변수(global)를 사용하지 않는 것이 좋습니다. 함수의 입력값으로 전달받아서 사용하거나, 함수의 반환값으로 결과를 돌려주는 방식으로 변경하는 것이 좋습니다. 함수명이 어떤 역할을 하는지 잘 나타나지 않는 경우가 있습니다. 예를 들면 extend_trash 함수는 쓰레기가 있는 위치를 확장하는 함수라는 것이지만, 이름에서는 그렇게 알기 어려운데요. 함수명이 그 역할을 잘 표현하도록 변경하는 것이 좋습니다. 코드의 가독성을 높이기 위해서는 각 함수와 전역 변수에..
팩맨 지옥을 봤다....12시간 동안 풀었다... 엣지 케이스보다 '설계를 어떻게 할까?' 할 때 기본적인 사고 부터 틀려서 개고생해버렸다. dfs를 bfs로 봐꾸는 것도 중요하지만 결국 반복적인 append, pop 작업을 dictionary로 덧뺄셈으로 바꿔서 통과했던 케이스. import sys, copy, heapq from collections import deque from collections import defaultdict m, t = map(int, sys.stdin.readline().strip().split()) r, c = map(int, sys.stdin.readline().strip().split()) dy, dx = [-1, -1, 0, 1, 1, 1, 0, -1], [0, -1,..
꼬리잡기놀이 시키는 대로만 하면 풀리는 문제.. 다만 머리가 꼬리를 쫒는 경우를 나중에 깨달아서 한참 고민했음. import sys, copy from collections import deque n, m, k = map(int, sys.stdin.readline().strip().split()) graph = [list(map(int, sys.stdin.readline().strip().split())) for _ in range(n)] point = 0 teams = deque([]) dx, dy = [1, 0, -1, 0], [0, -1, 0, 1] turn = 1 is_empty_team = [] def plus_score(y, x, team_idx): global point, teams, graph, is_..
산타의 선물 공장2 더블링크드리스트 자료구조를 구현해야하는 문제. 당연히 알고있지만, 도저히 구현할 방법이 떠오르지 않아서 막 구현했다가 얄짤없이 시간초과에서 막혔다. for문으로 딕셔너리를 전부 조회하면서(O(n)) element in (O(n))으로 찾고, 찾으면 index를 한번 더 찾기 때문에 (O(n)) 최악의 경우 O(n^3) 이 되버려서 말도 안되는 풀이라고 생각은 했다... 최대 명령의 개수 10**5 최대 벨트의 개수10**5 최대 선물의 개수 10**5.. 갓갓갓 호석님의 풀이를 다시 코드 짜봐야겠음... import sys from collections import defaultdict from collections import deque q = int(sys.stdin.readline().strip()..
코드트리 빵 갈수록 코테가 어려워 지는 것 같다... 우선 시간에 따라 통과하지 못하는 길목이 생기는데, 이를 고려해서 경로를 탐색해줘야한다. 이를 재탐색 하는결과로 출력해서 실패를 겪었다. 도착시간에 맞춰 통과못하는 부분을 주석처리하니 성공. 2시간 정도 걸렸.. 갈수록 어렵다. 실패코드 import copy import sys, math from collections import deque n, m = map(int, sys.stdin.readline().split()) time = 0 graph = [] b_location = [] c_location = [] infos = [] dx, dy = [0,0,-1,1], [-1,1,0,0] alive_infos = [] answer = 0 def search_exc..
14503 로봇 청소기 python n, m, y, x 가 자주 헷갈리니 조심해야할 것 같다... import sys sys.setrecursionlimit(10 ** 4) n, m = map(int, sys.stdin.readline().strip().split()) y, x, d = map(int, sys.stdin.readline().strip().split()) graphs = [list(map(int, sys.stdin.readline().strip().split())) for _ in range(n)] answer = 0 dx, dy = [0 ,1 ,0, -1], [-1, 0, 1, 0] # 북 동 남 서 def check(): global x, y, dx, dy, d, graphs, n, m for direction in ra..
14499 - 주사위 굴리기 y축, x축이 바뀐 걸 늦게 알아서 30분 넘게 날렸습니다. 3D 문제 너무 힘들어요. import sys from collections import defaultdict N, M, y, x, command_count = map(int, sys.stdin.readline().split()) graph = [list(map(int, sys.stdin.readline().strip().split())) for _ in range(N)] command = list(map(int, sys.stdin.readline().strip().split())) dx, dy = [1, -1, 0, 0], [0, 0, -1, 1] dice = defaultdict(int) for i in range(1, 7): dice[i]..
2048 (Easy) 구현은 그렇게 어렵지 않은 문제였습니다. 우선 어떤 게임인지 알고 있었기 때문에 이해가 빨라서 1시간에 넉넉하게 푼듯합니다. 다만 각 분기 처리에 대해서 고민을 깊게 하지 않으면 훨씬 오래 걸렸을 듯 합니다. 특히 14퍼센트에서 에러가 잡혀서 봤더니, 0처리를 안해줬었더라는.... 예를들어 테스트케이스 4 2 0 0 2 0 0 0 0 0 0 0 0 2 0 0 2 의 경우. 왼쪽으로 옮기면 4 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 이 되야 하지만 0 처리를 해주지 않으면 2 2 0 0 0 0 0 0 0 0 0 0 2 2 0 0 이 되버립니다. 분명 더 좋은 코드가 많을텐데... 여전히 공부가 많이 필요합니다. import sys, copy sys.setrecursionlimit(10 ** ..

728x90
반응형
LIST