본문 바로가기

알고리즘376

[BOJ / Python] 1427번 : 소트인사이드 문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. Solved.ac 레벨 실버 V 풀이 num=int(input()) numList=list(map(int, str(num))) numList.sort(reverse=True) print(*numList, sep='') https://www.acmicpc.net/problem/1427 2022. 3. 15.
[ BOJ / Python ] 1181번 : 단어 정렬 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. Sovle.ac 레벨 실버 5 풀이 n = int(input()) word = [] for i in range(n): word.append(input()) word = list(set(word)) word.sort(key=lambda.. 2022. 3. 13.
[BOJ / Python ] 1789번 : 수들의 합 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. Solved.ac 레벨 실버 V 풀이 s = int(input()) hap = 0 i = 1 while 1: if hap > s: print(i-2) break; else: hap += i i += 1 1 + 2 + 3 + ... + n = S 일때 순서대로 더해가던 hap의 크기가 입력된 s보다 커질 경우, n보다 작아야 최댓값이 된다. https://www.acmicpc.net/problem/1789 2022. 3. 11.
[BOJ / Python] 1158번 : 요세푸스 문제 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 출력 예제와 같이 요세푸스 순열을 출력한다. solved.ac 레벨 실버 5 풀이 자료구조 중 '큐'를 사용.. 2022. 3. 4.