시간 초과 때문에 input() 대신 sys.stdin.readline()을 사용해 입력받는다.만약 입력받은 숫자가 1개면 범위만 0으로 출력하고 나머지는 입력받은 그대로 출력한다.평균을 출력할 때는 int형으로 변환하는 것이 아닌 round()를 사용해 반올림해서 출력한다.중앙값은 정렬된 리스트에서 [길이 // 2]에 위치한 값을 출력한다.최빈값은 collections.counter를 사용해 산출했다. 최빈값이 여러 개 있으면 두 번째 값을 출력한다.범위는 max()와 min()을 사용해 가장 큰 값에서 가장 작은 값을 뺀다.문제풀이from collections import Counter import sys; s = sys.stdin.readline lst = list() for i in range(i..
입력받은 문자열을 set 자료형을 사용해 중복을 제거해 c에 저장한다. 그리고 반복문을 사용해 c의 요소를 하나하나 비교한다. index()를 사용해 요소 i의 위치를 찾고, count()를 사용해 요소 i의 개수를 찾는다.그 후 문자열 슬라이싱을 사용해 index부터 index + count까지의 문자열을 비교한다.만약 요소 i와 문자열이 다를 때는 0을 반환하고 전부 일치할 때는 1을 반환한다. 문제풀이ans = 0 def check(words): c = set(words) for i in c: index = words.index(i) count = words.count(i) for rpt in words[index:index+count]: if i != rpt: return 0 return 1 fo..
Counting Sort의 방식을 사용했다. 각 원소의 등장 횟수를 리스트에 저장하고 순서대로 등장 횟수만큼 출력한다.문제풀이import sys s = sys.stdin.readline lst = [0] * 10001 for i in range(int(s())): lst[int(s())] += 1 for i in range(1,10001): print("{}\n".format(i)*lst[i],end="")
원래는 병합 정렬, 힙 정렬 같은 O(NlogN) 이하의 시간복잡도를 갖는 정렬을 사용해야 한다.하지만 파이썬은 매우 느린 언어이기 때문에 직접 정렬을 구현해도 시간 초과가 나올 확률이 높다.그렇기에 내장 정렬 함수인 sorted()와 input() 대신 sys.stdin.readline을 사용해 정렬했다.중복되는 값은 set 자료형을 사용해 제거했다.문제풀이import sys ipt = sys.stdin.readline S = set() for i in range(0,int(ipt())): S.add(int(ipt())) for i in sorted(S): print(i)
분자 혹은 분모의 최댓값을 알기 위해 반복문을 사용해 N의 값을 1씩 증가시키며 X가 0 이하가 될 때까지 뺀다.이때 X는 0 이하의 숫자가 되기에 1을 더해 양수로 변환한다. 분자가 1 증가하면 분모가 1 감소하거나 그 반대의 형식이기에 분자나 분모를 구하기 위해 N에서 X를 더해 감소한 값을 구한다.그리고 지그재그 순서임을 고려하여 N이 짝수일 때는 분모가 1씩 감소하고 홀수일 때는 반대의 형식으로 출력한다.문제풀이 X,N = int(input()),0 while X > 0: N += 1 X -= N if N % 2 == 0: print("{0}/{1}".format(N+X,1-X)) else: print("{0}/{1}".format(1-X,N+X))
enumerate()를 사용해 각 작업의 대기순서를 설정하고 pop(0)을 사용해 가장 앞의 문서를 꺼내고 비교한다.현재 i의 중요도가 가장 높고 대기순서가 location과 같을 때는 mx - len(importance)를 반환한다.i의 중요도가 가장 큰 값이 아닐 때는 append()를 사용해 맨 뒤로 보낸다.i의 중요도가 가장 크나 대기순서가 location과 같지 않을 때는 중요도를 비교할 priorities에서 제일 큰 값을 빼낸다.문제풀이def solution(priorities, location): importance = [] mx = len(priorities) for e,p in enumerate(priorities): importance.append((p,e)) while True: i..