전체 글

[국영수]-10825번 My answer import sys n=int(sys.stdin.readline()) tmp=[] for i in range(n): tmp.append(sys.stdin.readline().rstrip().split()) tmp=sorted(tmp,key=lambda x:(-int(x[1]),int(x[2]),-int(x[3]),x[0])) for i in tmp: print(i[0]) Another answer for i in sorted([input().split()for _ in' '*int(input())],key=lambda x:(-int(x[1]),int(x[2]),-int(x[3]),x[0])): print(i[0])
문제 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net My answer import sys input = sys.stdin.readline n = int(input()) info = [] for i in range(n): age, name = input().rstrip().split() info.append([int(age), name]) info.sort(key=lambda x: x[0]) for i in info: print(*i) Another answer print(*sorted([*open(0)][1:],k..
문제 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net My answer import sys input = sys.stdin.readline n = int(input()) loc = [] for i in range(n): loc.append(list(map(int, input().split()))) loc.sort(key=lambda x: (x[0], x[1])) for i in loc: print(*i) Another answer n = int(input()..
[합]-8393번 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net My answer print(sum([i for i in range(int(input())+1)])) Another answer n=int(input()) print(int(n*(n+1)/2)) -------------------- n=int(input());print(n*-~n//2) 더보기 나는 문제 그대로를 의미해서 sum함수를 이용해서 풀었고 아래는 가우스 함수를 이용하였다 이렇게 1~n까지의 합을 구할 때 가우스 공식보다 빠른건 없는 것 같다. 그냥 시간복잡도가 O(1)이다. 아래 코드에서 (-~n)의 의미는 (n+1)을 의미한다. ~는 2의보수를 취하는 방법으로 ..
[수 정렬하기, 수 정렬하기2,수 정렬하기4,수 정렬하기5]-2750,2751,11931,15688번 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다. www.acmicpc.net 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,..
오늘은 알고리즘이 아니라 함수를 설명할 것이다. 백준에서 가장 간단한 입출력 문제들을 푸는데 계속 시간초과 오류가 떴었다. 다른 곳에서는 시간을 줄일 데가 없는데 계속 초과떠서 답답해하면서 검색하던 찰나에 sys함수를 발견했다. sys는 파이썬의 표준 라이브러리중에 하나이다. 이 라이브러리 안에서 sys.stdin.readline()이라는 함수가 있는데 이 함수가 바로 input()과 동일한 함수이다. 유일한 차이점은 sys.stdin.readline()은 맨뒤에 개행문자가 같이 입력된다는 점이다. 즉 우리가 입력값을 치고 엔터를 누를 때 그 문자도 같이 들어간다. 그것을 제외하고는 input()과 똑같이 단순 입력을 하는데 왜 이 함수를 쓰냐면 시간이 훨씬 빠르다. 또한 메모리도 적게 사용한다. 그래서..
[그대로 출력하기,그대로 출력하기2]-11718,11719번 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net My answer import sys for L in sys.stdin: print(L,end="") Another ans..
창빵맨
Let's be Developers