문제 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 코드 My answer import sys input = sys.stdin.readline array = input().rstrip() n_array = [i for i in array] n_array.sort(reverse=True) print(int("".join(n_array))) another answer nums = list(map(int, str(input()))) nums.sort(reverse=True) for i in nums: print(i,end='') 풀이 단순하게 문자열로 입력받은 이후, 정수형으로 변경하여 정렬하였다...
코딩테스트
문제 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 코드 My answer import sys input = sys.stdin.readline n = int(input()) n_list = sorted(list(map(int, input().split()))) m = int(input()) m_list = list(map(int, input().split())) def binary_search(start, end, target): if (start > end)..
문제 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 코드 My answer import heapq import sys input = sys.stdin.readline INF = int(1E9) N, M, K, X = map(int, input().split()) graph = [[] for _ in range(N+1)] distance = [INF for _ in range(N+1)] answer = 0 for i in range(M):..
문제 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 코드 My answer from itertools import combinations import sys input = sys.stdin.readline L, C = map(int, input().split()) letter = list(input().split()) vowels = ['a', 'e', 'i', 'o', 'u'] a = list(combinations(letter, L)) a = ["".join(sorted(i)) for i in a] for i..
문제 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 코드 My answer # 메모리 49440 KB / 시간 1516 ms import sys input=sys.stdin.readline t_c=int(input()) for k in range(t_c): n=int(input()) sticker=list(list(map(int,input().split())) for _ in range(2)) dp = [[0]*(n+1) for _ in range(2)] dp[0][1],dp[1][1]=stick..
문제 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 My answer import sys input=sys.stdin.readline n=int(input()) num=list(map(int,input().split())) dp=[0]*n for i in range(n): if(num[i]>=0):dp[i]=max(0,dp[i-1])+num[i] else: if(dp[i-1]+num[i]>=0): dp[i]=dp[i-1]+num[i] else: dp[i]=num[i] print(max(dp)) Another an..