Algorithm/백준(BOJ)111 [ 파이썬(python) ] 백준 5597 - 과제 안 내신 분..? 📍 백준 5597 - 과제 안 내신 분..? 백준 5597 - 과제 안 내신 분..? ⚡️ 나의 풀이 두 가지 방법으로 풀었는데 입력값을 list로 만들어 반복문을 선언하고 해당 i가 전체 범위인 students안에 있는지 확인하고 없는 값들을 출력하게 만들었다. 전체 범위와 입력값을 모두 set형으로 선언한뒤 서로 빼주고 sorted했다. 문제를 자세히 보면 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하라고 되어있는데, 문제 의도는 1번보다는 2번 코드에 더 가깝다고 볼 수 있다. 왜냐하면 sorted를 사용해서 작은 수부터 출력하기 때문이다. # case 1 students = list(range(1, 31)) report = [int(input()) for i in range(28)] p.. 2021. 4. 26. [ 파이썬(python) ] 백준 20053 - 최소, 최대 2 📍 백준 20053 - 최소, 최대 2 백준 20053 - 최소, 최대2 ⚡️ 나의 풀이 주어진 테스트 케이스만큼 while문을 사용하여 각 케이스마다 입력을 받아 최소, 최대 값을 출력하게 만들었다. import sys input = sys.stdin.readline T = int(input()) while T: N = int(input()) arr = list(map(int, input().split())) print(min(arr), max(arr)) T -= 1 2021. 4. 26. [ 파이썬(python) ] 백준 11659 - 구간 합 구하기4 📍 백준 11659 - 구간 합 구하기 4 백준 11659 - 구간 합 구하기4 ⚡️ 나의 풀이 이 문제를 그냥 구현한다면 시간 초과에서 벗어나지 못할 것이다. 바로 시간 복잡도가 높기 때문인데, 이럴 때 시간 복잡도를 낮출 적절한 알고리즘이 바로 prefix_sum이다. prefix_sum의 난이도는 어렵지 않다. 서두에서 말했듯이 이 문제를 prefix_sum을 사용하지 않고 구현할 때 M, N의 입력 범위가 100,000이 넘어간다면 시간 복잡도는 O(MN)이 되므로 1초 내에 구현할 수가 없다. 알고리즘을 설계할 때마다 고려해야 하는 점은 여러 번 사용될 만한 정보는 미리 구해서 저장해 놓을수록 유리하다. 구현 방법은 간단한데, 각각의 합들을 새로운 배열에 저장해뒀다가 나중에 입력에 구간이 들어오.. 2021. 4. 23. [ 파이썬(python) ] 백준 4179 - 불! (BFS) 📌 백준 4179 - 불! 문제 설명 💡 나의 풀이 나에겐 끔찍한 문제였다.. 이 문제에 오전, 오후를 완전히 쏟아버렸다. 😇 😇 수 없이 코드를 제출했다. 하지만, 돌아오는 대답은 인덱스 에러 혹은 틀렸습니다. 채점 중간에 71%에서 자꾸 오답 판정을 받았다. 틀린 이유를 단계별로 작성하면 인덱스 에러(Index Error): 변수 정의 단계에서 행과 열을 반대로 입력했다. 잘못된 변수 입력: 네이밍을 비슷하게 해서 그런지 중간에 다른 변수를 작성해서 제출했다. 잘못된 코드: 여기서 시간이 제일많이 걸렸는데 마지막 단계인 f_visited > j_visited 조건을 잘못 추가했다. 처음에는 f_visited[nx][ny] > j_visited[nx][ny]로 생각했는데 아니었다. 왜 그런가 하면 우리.. 2021. 4. 22. [ 파이썬(python) ] 백준 1743 - 음식물피하기 (BFS) 📌 백준 1743 - 음식물 피하기 문제 설명 💡 나의 풀이 전형적인 BFS 혹은 DFS 문제이고, 입력에 음식물의 좌표를 입력받아 BFS, DFS를 돌려 단순 개수를 파악하고 기존 개수와 현재 개수를 비교하여 더 큰 값으로 갱신해주면 되는 방향으로 문제를 풀면 된다. 여기서 약간 까다로운 부분은 좌표를 직접 입력받는 부분일 텐데, 우리가 사용하는 graph는 0부터 시작하므로 입력을 받을 때 -1처리를 해주면 오류없이 그래프에 입력할 수 있다. 풀이 흐름을 직접 그려봤다. import sys from collections import deque input = sys.stdin.readline def bfs(x, y): cnt = 0 queue = deque() queue.append((x, y)) vi.. 2021. 4. 22. 이전 1 ··· 15 16 17 18 19 20 21 ··· 23 다음