2024/08 5

[백준] 8111번: 0과 1 - Python

https://www.acmicpc.net/problem/81110과 1문제를 살펴보면, 간단한 BFS문제처럼 보인다. 예전에도 비슷한 문제를 푼 적이 있습니다. https://writedown-remain.tistory.com/63백준 16953: A -> B.간단한 BFS 문제입니다.만들 수 있는 모든 경우의 수를 BFS로 탐색해 연산의 횟수를 출력하면 됩니다.크게 다르지 않은 문제 형태입니다.조건이 조금 다르긴 하지만요.1로 시작해야 하고, 그 이후에 0과 1이 계속 붙어서 약간의 이진수처럼 숫자를 구성해야 합니다.그리고 그 숫자는 입력받은 n으로 나눠저야 합니다.따라서 밑의 코드처럼 매우 간단하게 풀 수 있을 줄 알았습니다. (간단했으면 플레티넘 문제가 아니겠지요?)import sysfrom co..

[백준] 16952번: A → B - Python

https://www.acmicpc.net/problem/16953뭐 사실 재미있는 문제인가? 라고 했을 때재미있다고 하기는 어렵구 이런 것도 그래프로 풀 수 있다는 걸 깨달아서,문제가 안풀리면 사실 문제 분류를 보는데 이 문제는 문제 분류를 보고 '이게 왜 이렇게 분류되어있지? 라는 생각이 들었다. 예전 생각은 '거꾸로 계산해서 넘어오면 되는거 아닌가?'라는 생각을 했었다.그러니까 예시로 보여주면'''입력값1 : 2 162 162 : 끝이 1이 아니기 때문에 무조건 // 281 : 끝이 1이니까 1을 때버림8 : 끝이 1이 아니기 때문에 무조건 // 24 : 끝이 1이 아니기 때문에 무조건 // 22 : 완성 => 만들 수 있음 입력값2 : 4 4242 : 끝이 1이 아니기 때문에 무조건 // 221 ..

[백준] 14502번: 연구소 - Python

https://www.acmicpc.net/problem/14502발상은 쉽지만, 간단하다고 말하기는 어려운 문제입니다.dfs로 풀었는데 python 시간 초과, pypy3 3043ms그래서 조금 정리를 하려고 가져왔습니다.첫 발상은 모든 빈 공간에 벽을 차례차례 세워보고바이러스가 퍼질 공간을 dfs로 확인 한 다음0의 개수를 count해서 max를 출력하면 되지않을까? 입니다.그래서 밑의 코드처럼 구현했습니다.import sysn, m = map(int, sys.stdin.readline().split())data = []temp = [[0] * m for _ in range(n)]for _ in range(n): data.append(list(map(int, sys.stdin.readline()..

[백준] 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 - Python

https://www.acmicpc.net/problem/24479맨날 dfs, bfs 이해하기도 어렵고 복잡해서 싫었는데뭐 이것도 코딩테스트 진짜 자주 나오니까, 그리디보다 자주 나오니까 해야 한다.일단 문제부터 봅시다.보면 간단한 dfs + "방문 순서"를 출력하는 문제입니다.✱참고✱dfs는 구현 방법이 인접 리스트와 인접 행렬 이렇게 2가지가 있습니다. 인접 리스트인접 행렬장점연결 된 관계만 저장하기 때문에 메모리의 낭비를 줄인다모든 관계를 다 저장하기 때문에 연결을 확인하는 속도가 빠르다단점연결을 확인하는 속도가 느리다메모리 낭비가 심하다저는 처음에 간단하게 인접 리스트 방식을 사용해서 구현했습니다.import sysdef dfs(graph, v, visited, answer, rank): ..

[백준] 2346: 풍선 터뜨리기 - Python

https://www.acmicpc.net/problem/2346아니 이거 푸는데 너무 오래 걸려서 옛날에 푼 거를 봤는데리스트 크기가 바뀔 때, 인덱스를 출력해야 하는 문제를 맨날 못 풀었던 거 같아서 정리를 하려고 가져왔습니다.이건 발상도 오래걸렸고, 코드 구현도 마지막에 가서 헤매었어요..발상부터 다 갈아엎고 나서 다시 풀었습니다.코테에 이런 문제 나오면.. 어휴 정말 끔찍하네당하기 전에 정리해야지문제는 간단합니다. 풍선 속에 숫자가 있고 터트린 풍선에 있는 숫자만큼 이동하는 상황입니다.터뜨린 풍선은 제외하고 움직입니다.제 발상은 딕셔너리로 위치를 처리하고큐로 풍선 움직임을 구현하자였습니다.import sysfrom collections import dequen = int(sys.stdin.read..