본문 바로가기

알고리즘

(171)
백준 14503 로봇청소기 파이썬 풀이, 반례 난이도 : 골드5 풀이일 : 04204 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐1차 시도 오답 -> 1% 틀렸습니다.import sys def clean(arr, i, j, h): sell = 0 while True: if arr[i][j] == 0: arr[i][j] = -1 sell += 1 next_sell = 0 for k in range(..
백준 1000 A+B 자바 풀이 난이도 : 브론즈5 풀이일 : 04112 https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = scan.nextInt(); System.out.println(a+b); } } 느낀점 숫자 두 개 입력 받는 법을 몰라서 스캐너 두개 썼더..
백준 13549 숨바꼭질3 파이썬 풀이, 반례 난이도 : 골드5 풀이일 : 04193 https://www.acmicpc.net/problem/1354913549번: 숨바꼭질 3수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐1차 시도 오답 -> 8% 틀렸습니다import sys N, K = map(int, sys.stdin.readline().split()) def find(num): visited = [0] * 100000 queue = [num] visited[num] = 1 p = 0 while p ..
백준 2557 Hello World 자바 풀이 난이도 : 브론즈5 풀이일 : 04112 https://www.acmicpc.net/problem/2557 2557번: Hello WorldHello World!를 출력하시오.www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐풀이 코드public class Main { public static void main(String[] args) { System.out.println("Hello World!"); } }느낌점 자바는 아주 쉬운 문제여도 좀 답안을 쓰기가 아주 싫게 생긴 것 같다. 아주 기초 문제를 풀고 있지만 이러다보면 파이썬으로 푸는 문제들도 풀 수 있겠지 매일 아침마다 자바 기본 문제들도 하나씩 업로드해야겠다.
백준 11004 K번째 수 파이썬 풀이 난이도 : 실버5 풀이일 : 04171 https://www.acmicpc.net/problem/11004 11004번: K번째 수수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐풀이 코드import sys n, k = map(int, sys.stdin.readline().split()) num = list(map(int, sys.stdin.readline().split())) num.sort() print(num[k-1])sort 를 사용해 정렬 한 후 주어진 K번째 수를 출력하기 위해 인덱스 (K-1) 출력메모 - sort() : 기존의 리스트..
백준 7569 토마토 파이썬 풀이 난이도 : 골드5 풀이일 : 04171 https://www.acmicpc.net/problem/7569 7569번: 토마토첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐풀이 과정 - 익은 토마토는 동, 서, 남, 북, 상, 하 6방향 토마토에 영향 - 3차원 형식으로 리스트 구성 -> 6방향 탐색 진행 - 포인터 사용으로 pop 연산 시간초과 방지 - 익은 토마토 리스트를 구성해 토마토 숙성 함수에 넘겨주기 - 토마토가 익는 날짜는 이전 숫자 +1 기록 -> ..
백준 2573 빙산 파이썬 풀이, 시간초과, 반례 난이도 : 골드4 풀이일 : 04156 https://www.acmicpc.net/problem/2573 2573번: 빙산첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐1차 시도 오답 -> 34% 시간 초과import sys def melt(arr): global day temp = [[0] * m for _ in range(n)] flag = False # 빙산 존재 여부 # 녹을 높이 구하기 for i in range(n): for j in range(m): if arr[i..
백준 7576 토마토 파이썬 풀이, 시간초과 해결 난이도 : 골드5 풀이일 : 04145 https://www.acmicpc.net/problem/7576 7576번: 토마토첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐1차 시도 오답# 익은 토마토 발견 시, 리스트에 추가 # 리스트를 인자로 하는 함수에서 토마토 인근 4방향 탐색 # 익지 않은 토마토가 있다면, -1 출력 import sys # 익은 토마토 찾기 함수 def tomato(arr): red = [] for a in range(n): for b in ra..
백준 11724 연결 요소의 개수 파이썬 풀이, 시간초과, 반례 난이도 : 실버2 풀이일 : 04145 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 캡쳐 연결 요소는 길을 통해 갈 수 있는 정점 무리 의미1차 시도 오답import sys n, m = list(map(int, sys.stdin.readline().split())) load = [[0] * (n+1) for _ in range(n+1)] for _ ..
백준 5567 결혼식 파이썬 풀이 난이도 : 실버2 풀이일 : 04134 https://www.acmicpc.net/problem/5567 5567번: 결혼식 예제 1의 경우 2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2, 3, 4 3명의 친구를 결혼식에 초대 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 캡쳐 풀이 과정 처음에는 친구관계로 엮여 있지 않고 동떨어져 있는 사람을 제외한 모든 사람을 초대한다고 이해했는데, 힌트를 보니 상근이의 친구와 친구의 친구에 해당하는 사람을 세는 문제였다. - 2차원 배열로 친구 관계를 저장하고, queue를 이용한 BFS로 동기들과 상근이의 관계를 리스트에 기록 - 상근이..
백준 2644 촌수계산 파이썬 풀이, 반례 난이도 : 실버2 풀이일 : 04123 https://www.acmicpc.net/problem/26442644번: 촌수계산사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 캡쳐1차 시도 오답import sys def find(num, l): queue = [] queue.append(num) while queue: k = queue.pop(0) if parent[k]: l.append(parent[k]) queue.append(parent[k]) return m = int(sys..