목록문제/백준_파이썬 (155)
sm 기술 블로그
import sys input = sys.stdin.readline N = input() result = "" repoNum = [] for i in range(len(N)-1): repoNum.append(int(N[i])) repoSortedNum = sorted(repoNum, reverse=True) for i in repoSortedNum: result += str(i) print(result) 문제요약 입력된 숫자를 내림차순으로 정렬해라 (2143 => 4321) 설명 크게 어렵지 않은 문제이다. 먼저 입력을 문자열로 받았다. 받은 문자열을 문자로 쪼개 리스트에 저장하였다. 정렬함수를 통해 내림차순으로 정렬하고 값들을 다시 문자열로 만들어 출력 하였다. sorted 사용방법은 아래를 참고하자 ..
import sys input = sys.stdin.readline N = int(input()) num = sorted([int(input())for _ in range(N)]) # 산술평균 avg = sum(num)/N if -1 < avg < 0: print(0) else: print(round(avg)) # 중앙값 midValue = num[N//2] if -1 < midValue < 0: print(0) else: print(midValue) # 최빈값 max = 0 arr = [-1]*8001 cnt = 0 arr_repo = [] find_max = 0 if(len(num) == 1): print(num[0]) else: for i in num: arr[i+4000] += 1 for i in..
import sys input = sys.stdin.readline N = int(input()) num_arr = [0]*10001 for i in range(N): num_arr[int(input())] += 1 # 카운팅 for i in range(10001): for _ in range(num_arr[i]): print(i) 카운팅 정렬 카운팅 정렬이란 정렬하고자 하는 배열에 해당 인덱스에 수를 하나씩 증가시켜 중복되는 수가 있더라도 빠르게 정리 가능한 방법이다. 문제 해결 최대 10000보다 작거나 같은 자연수가 입력될 수 있다. 따라서 카운팅하기 위한 배열 num_arr를 만들어 준다. 이후 배열에 값에 따라 num_arr의 수를 증가시켜주고 결과를 출력시켜준 것이다.
import sys input = sys.stdin.readline print(*sorted([int(input()) for _ in range(int(input()))])) 문제 요약 언어에 있는 요소들을 잘 써서 더 빠르게 정렬 가능함? 해결 파이썬에서 input의 속도는 sys에 비해서 비교적 많이 느리다. 때문에 import sys input = sys.stdin.readline 을 통해서 input의 속도를 sys만큼 끌어 올리는 것이다. 기본 문법은 import sys sys.stdin.readline() 다음과 같다. 근데 우리는 input이 익숙하기 때문에 input을 sys속도 만큼 끌어 올리는 첫번째 문법을 이용하는 것을 추천한다. sorted는 파이썬에 내장된 정렬함수로 *을 붙여주면..