본문 바로가기
반응형

백준3

[ 백준 ] 10451 번 순열 사이클 파이썬python 풀이 // 문제 요약 1부터 N 까지 정수로 만들 수 있는 순열의 한 가지 경우가 주어질 경우 1부터 N 까지 오름차순으로 정렬한 순열과 1대 1 대응 하여 만들 수 있는 그래프에서 순환 구조는 몇개가 생기는지 리턴하는 함수를 만들어라. //사고 문제를 이해하는게 어려운 문제다. 문제의 참고자료를 보면 그림이 아주 잘 나와있는데 이런 행렬이 주어지면 첫번째 행이 from 두번째 행이 to 가 되는 그래프를 그릴 수 있다. 그려본다면 이런식이다. 모두 같은 숫자로 이루어진 순열이므로 뻗어나가고 끝나는 가지는 존재하지 않게 되고 순환구조가 발생하게 된다. 파이썬에서는 dfs를 이용하면 순환구조를 간단하게 찾을 수 있는 테크닉이 존재하는데 바로 파이썬의 set() 를 이용한 진행경로 추적이다. dfs의 경우 깊이를.. 2021. 7. 29.
[ Baekjoon 백준 ] # 7569 번 Python 풀이 // 문제 요약 토마토를 3차원 격자에 배치한다. 익은 것, 안 익은 것, 빈 칸 이렇게 세 종류의 칸이 존재한다. 익은 토마토의 대각선 방향을 제외한 이웃한 칸에 안 익은 토마토가 있을 경우 하루가 지나면 익은 토마토로 바뀐다고 할때 토마토가 다 익는데 걸리는 최소 일자를 구해라 단 모든 토마토가 익을 수 없다면 -1을 처음부터 모두 익어있다면 0을 출력해라. // 사고 3차원에 덜컥 겁을 먹었는데 알고보니 원래 2차원 문제였던걸 확장한 문제여서 2차원 문제 풀었던 사람들은 쉽게 접근을 했던 문제였다. 역시 코테는 문제를 얼마나 풀어보느냐가 절반은 먹고 들어간다. 아무튼 시간이 많이 걸리겠다 생각이 들어서 백트래킹을 생각할 수 있는데 백트래킹은 DFS 이므로 하루에 이웃한 한 칸만 전염시키는 조건에 맞.. 2021. 6. 14.
[ Baekjoon 백준 ] # 10953 번 Python 풀이 이 문제를 처음 풀때는 설명이 빈약하여 어떻게 해야할지 굉장히 난감했다. 이 문제를 통하여 백준이 어떤 유형의 입출력을 선호하는지 알아보자. 이게 백준에 있는 원본 문제다. 얼핏봐서는 음 그렇군 할만한 내용인데 예제를 보면 이렇다. 여기서 좀 이상한 점을 느꼈다. 아니 iterable 하게 캐이스를 주는건가? 아니면 1회 실행당 1 번의 캐이스가 입력되는 것인가? 이런 저런 가능성들 때문에 정말 많은 시도를 해보고 나서야 이 간단한 덧셈을 풀 수 있었다. 아래 코드를 보자. for _ in range(int(input())): print(sum([int(n) for n in input().split(",")])) 그렇다. 간단하게 말하면 터미널에서 XXX.py 를 실행 한 후 저기 예제입력1 옆에 있는 .. 2021. 4. 10.
반응형