본문 바로가기

BOJ157

[Python] 백준 17609번 : 회문 https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 💡 문제 풀이 투포인터 문제이다. 조건에 맞춰서 잘 출력만 해주면 된다. ✔️ 느낀 점 사실 구현하는데 생각보다 오래 걸렸다. 💻 코드 import sys input = sys.stdin.readline def ispseudo(word, left, right): while left < right: if word[left] == word[right]: left += 1 right -= 1 else: return False ret.. 2023. 2. 22.
[Python] 백준 14502번 : 연구소 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 💡 문제 풀이 그래프 탐색 + 브루트 포스 문제이다. 벽을 단 3개만 설치해서 얻을 수 있는 최선의 경우를 찾아야 한다. 완전 탐색을 통해서 3개를 설치했을 때 발생하는 모든 경우를 따지고, bfs를 사용해서 주어진 경우를 따져서 안전 구역의 개수를 따져주면 된다. 주의해야 할 점은 깊은 복사를 사용하지 않으면 원본이 훼손된다는 점이다! ✔️ 느낀 점 이렇게 따지는 경우를 어떻게 해야 할지 몰랐는데 단순하게 .. 2023. 2. 22.
[Python] 백준 6603번 : 로또 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 💡 문제 풀이 백트래킹 문제이다. 라이브러리를 사용해서 풀었다. ✔️ 느낀 점 계속 틀렸다고 나오길래 뭐가 문제인가 했더니 print("")을 해서 틀렸었다. 💻 코드 from itertools import combinations import sys input = sys.stdin.readline while True: tmp = list(input().split()) if tmp[0] .. 2023. 2. 14.
[Python] 백준 11660번 : 구간 합 구하기 5 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 💡 문제 풀이 기본적인 구간합 문제이다. ✔️ 느낀 점 문제를 이번에도 제대로 안 읽고 풀어서 헛되이 보낸 시간이 있었다. 조심하자..! 💻 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) board = [] for _ in range(n): board.append(lis.. 2023. 2. 10.
[Python] 백준 1446번 : 지름길 https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이 www.acmicpc.net 💡 문제 풀이 다익스트라 문제이다. 그리디로도 풀 수 있을 것 같다. 다익스트라 알고리즘을 구현할 줄 알고, 알고리즘을 적용할 노드를 어떻게 설정할지 고민해야 한다. 일반적인 문제와 다르게 특정 노드가 주어지지 않아 고속도로의 길이만큼 노드가 주어졌다고 생각해야 한다. ✔️ 느낀 점 오랜만에 다익스트라 문제를 풀어보기 위해서 쉬운 문제로 갔는데 생각보다 쉽게 접근이 되지 않았다. 파이썬.. 2023. 1. 31.
[Python] 백준 9944번 : NxM 보드 완주하기 https://www.acmicpc.net/problem/9944 9944번: NxM 보드 완주하기 N×M 보드 위에서 할 수 있는 게임이 있다. 보드는 크기가 1×1인 정사각형 칸으로 나누어져 있다. 보드의 각 칸은 빈 칸 또는 장애물이다. 장애물은 아래 그림에선 어두운 사각형으로 표시되어져 www.acmicpc.net 💡 문제 풀이 간단한 구현 문제이다. 백트래킹을 곁들인. 백트래킹을 하면서 매번 2차원 배열을 복사하면 메모리가 너무 커지기 때문에 방문했던 좌표들을 처리하는 리스트를 새로 만들었다. ✔️ 느낀 점 어렵지 않은 구현 문제였다. 이전에 예외처리를 하는 문제를 풀어봐서 괜찮았다. 💻 코드 import sys input = sys.stdin.readline MAX = 1000001 ans, .. 2022. 9. 18.