본문 바로가기
반응형

Algorithm283

[Python] 백준 2869번 - 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 처음에는 문제를 보자마자 스택으로 풀면되나? 스택이니 재귀를 사용해야겠지? 라고 생각했으나 문제의 조건에 길이가 최대 1,000,000,000 까지인걸 본 순간 재귀나 기타 반복문은 버리고 수학.. 2022. 10. 12.
[Python][이코테] 두 배열의 원소 교체 동빈이는 두 개의 배열 A와 B를 가지고 있다. 두 배열은 N개의 원소로 구성되어 있으며, 배열의 원소는 모두 자연수이다. 동빈이는 최대 K번의 바꿔치기 연산을 수행할 수 있는데, 바꿔치기 연산이란 배열 A에 있는 원소 하나와 배열 B에 있는 원소 하나를 골라서 두 원소를 서로 바꾸는 것을 말한다. 동빈이의 최종 목표는 배열 A의 모든 원소의 합이 최대가 되도록 하는것이며, 여러분은 동빈이를 도와야 한다. 입력 조건 첫 번째 줄에 N, K가 공백으로 구분되어 입력된다. (1 ≤ N ≤ 100,000, 0 ≤ K ≤ N) 두 번째 줄에 배열 A의 원소들이 공백으로 구분되어 입력된다. 모든 원소는 10,000,000보다 작은 자연수이다. 세 번째 줄에 배열 B의 원소들이 공백으로 구분되어 입력된다. 모든 원.. 2022. 10. 9.
[Python][이코테] 성적이 낮은 순서로 학생 출력하기 입력 조건 첫 번째 줄에 학생의 수 N이 입력된다. (1 ≤ N ≤ 100000) 두 번째 줄부터 N + 1번째 줄에는 학생의 이름을 나타내는 문자열 A와 학생의 성적을 나타내는 정수 B가 공백으로 구분되어 입력된다. 문자열 A의 길이와 학생의 성적은 100 이하의 자연수이다. 출력 조건 모든 학생의 이름을 성적이 낮은 순서대로 출력한다. 성적이 동일한 학생들의 순서는 자유롭게 출력해도 괜찮다. 입력 예시 2 홍길동 95 이순신 77 출력 예시 이순신 홍길동 내 코드 n = int(input()) data = {} for _ in range(n): input_data = input().split() data[input_data[0]] = int(input_data[1]) sorted_data = sort.. 2022. 10. 8.
[Python][이코테] 위에서 아래로 입력 조건 첫째 줄에 수열에 속해 있는 수의 개수 N이 주어진다. (1 ≤ N ≤ 500) 둘째 줄부터 N + 1번째 줄까지 N개의 수가 입력된다. 수의 범위는 1 이상 100000 이하의 자연수이다. 출력 조건 입력으로 주어진 수열이 내림차순으로 정렬된 결과를 공백으로 구분하여 출력한다. 동일한 수의 순서는 자유롭게 출력해도 괜찮다. 입력 예시 3 15 27 12 출력 예시 27 15 12 # 6-7 정렬 위에서 아래로 n = int(input()) data = [] for _ in range(n): data.append(int(input())) data.sort(reverse=True) for i in range(n): print(data[i], end=' ') 2022. 10. 7.
반응형