본문 바로가기
728x90
반응형

알고리즘109

[백준] 2847번: 게임을 만든 동준이 - python https://www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net 게임 난이도를 순차적으로 생성하기 위해 처음엔 바텀업 방식을 사용하여 for을 첨부터 시작햇으나 감소시킬때 그 다음 바뀐 인덱스 숫자에 영향을 줌으로 탑다운 방식으로 접근해서 코드 작성함. n = int(input()) arr = [] for i in range(n): arr.append(int(input())) cnt = 0 for i in range(n-1, 0, -1): while arr[i] 2024. 3. 25.
[백준] 1439번: 뒤집기 - python https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 단순히 바뀌는 횟수만 더한 다음에 2로 나누면 될까?라고 생각하고 코드 작성햇는데 정답. arr = list(input()) cnt = 0 for i in range(len(arr)-1): if arr[i] != arr[i+1]: cnt += 1 print((cnt+1)//2) 괜찮은거같다. 2024. 3. 25.
[백준] 11399번: ATM - python https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net ATM 문제를 보고 마트에서도 이렇게 하면 좋겟다 생각했다. 맨날 한 두개 사는데 하루종일 기다려서.. 코드는 그냥 정렬한 다음 순서대로 더하면 끝이다. 그리디 문제는 정렬 업그레이드 느낌인 것 같다. n = int(input()) arr = list(map(int, input().split())) arr.sort() sum = 0 for i in range(n): for j in range(i+1): sum+=arr[j] p.. 2024. 3. 25.
[백준] 1026번: 보물 - python https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net a를 정렬한 뒤 b에서 가장 큰 것을 골라서 값을 구한뒤 삭제하는 방식으로 진행 기본적인 그리디 문제였다. n = int(input()) a = list(map(int, input().split())) b = list(map(int, input().split())) a.sort() cnt = 0 for i in range(n): cnt += max(b) * a[i] b.remove(max(.. 2024. 3. 25.
728x90
반응형