본문 바로가기
728x90

ALGORITHM/BAEKJOON42

[BOJ/Python] 2805. 나무 자르기 📌 문제 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 📌 문제 접근 방법 알고리즘 분류가 이분 탐색이고, 대부분 이분탐색으로 풀이를 했던데 난 조금 다르게 접근해서 풀어보았다! 처음엔 문제의 스토리텔링 순서대로 읽어가며 맨 위에서부터 차근차근 높이를 하나씩 낮추면서 탐색을 했다. 결과는 시간 초과! 그 다음엔 주어진 나무의 길이를 모두 더하고 필요한 만큼의 나무 길이를 빼준 후, 나머지만큼의 나무를 N.. 2021. 8. 28.
[BOJ/Python] 1920. 수 찾기 📌 문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 📌 문제 접근 방법 이진 탐색 적용해보기! start랑 end범위 잡아주는 게 은근 헷갈린다..! 완전히 이해될 때까지 주말동안 문제 많이 풀어보기!!!! 📌 코드 import sys def isin(A, B): A.sort() result = [0]*M for i in range(M): start = 0 end = N-1 while sta.. 2021. 8. 21.
[BOJ/Python] 10989. 수 정렬하기 3 📌 문제 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 📌 문제 접근 방법 카운팅 정렬 적용해보기! 처음엔 자꾸 메모리 초과가 떠서 고민하다가 숫자를 입력받아서 리스트를 만들지 않고, 바로 카운팅을 해줬다! 그래도 인덱스에러가 나길래 또 뭘까 하니까 입력받는 숫자가 한 자리수가 아니라 10000까지 들어오는 것이었다..! 쉬워보여서 무시했는데 쉽지 않네..ㅎ... 📌 코드 import sys N = int(sys.stdin.readline()) cnt = [0].. 2021. 8. 18.
[BOJ/Python] 2750. 수 정렬하기 📌 문제 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 📌 문제 접근 방법 선택 정렬 적용해보기! 📌 코드 import sys from typing import NoReturn N = int(sys.stdin.readline()) numbers = [] for _ in range(N): numbers.append(int(sys.stdin.readline())) # 선택 정렬 for i in range(len(numbers)-1): min_idx = i.. 2021. 8. 18.
728x90