728x90
반응형
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_10828_스택2021-12-27 22:19:01https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 5개의 명령어가 있고, 그 명령어 중 N개를 입력하면, 그에 맞는 결과가 순차적으로 최종 출력되어야 한다. globals 함수 이용(맞았습니다) # globals 함수 이용(결과: 맞았습니다!) stack = [] def push(n): stack.append(n) def pop(): if len(stack) == 0: rst.append(-1) else: rst.append(s..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_18870_좌표 압축2021-12-26 11:22:42https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net N개의 숫자를 작은 숫자 부터 0부터 시작하는 순위를 매겨야 한다. 같은 숫자는 같은 순위이다. 1차 시도(시간 초과) # 이중 for문(결과: 시간 초과) import sys N = int(sys.stdin.readline()) ipt = list(map(int, sys.stdin.readline().split())) idx = list(sort..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_10814_나이순 정렬2021-12-25 15:44:04https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net N명의 회원을 정렬해야 한다. 나이순으로 정렬하고, 나이가 같으면 먼저 입력된 순으로 정렬한다. 1차 시도(틀렸습니다) # 1차 시도(결과: 틀렸습니다) import sys N = int(sys.stdin.readline()) ipt = [] id = 0 # 나이가 같을 경우 기준으로 삼을 가입순서 id를 부여했다. for i in range(N): ipt.append(sys.stdin.readline..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_1181_단어 정렬2021-12-24 14:13:01https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net N개의 알파벳 소문자 문자열을 길이가 짧은 것부터, 길이가 같으면 사전 순으로 정렬해야한다. 시간 초과 # 1차 시도(결과: 시간 초과) import sys N = int(sys.stdin.readline()) ipt = [] for _ in range(N): ipt.append(sys.stdin.readline().strip('\n')) # strip() 메서드 이용하여 '\n' 제거..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_11651_좌표 정렬하기 22021-12-23 11:55:05https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net x, y 좌표의 점이 N개 있다. 좌표 y를 기준으로 점을 오름차순 정렬해야한다. 이때 y가 동일하면 x로 순서를 결정한다. 11650번 좌표 정렬하기 1은 x가 우선이라 sort 함수의 사용만으로 문제를 해결 할 수 있었다. 반면 다소 까다로워진 문제다. 시간 초과 # 1차 시도(결과: 시간 초과) import sys # xy를 yx로 순..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_11650_좌표 정렬하기2021-12-20 10:45:25https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net x, y 좌표의 점이 N개 있다. 점을 오름차순 정렬해야한다. 이때 x가 동일하면 y를 기준으로 순서를 결정한다. list 제공 함수 sort를 이용하면 매우 간단히 해결 할 수있는 문제이다. 하지만 처음에 문제의 의도를 이해하지 못해 애를 먹었다. 아래 그림과 같이 오름차순 정렬하면 되는 간단한 문제인데 너무 어렵게 생각했다. list 제공 ..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_1427_소트인사이드2021-12-16 20:43:46https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 숫자 문자열을 내림차순 정렬해야 한다. list 제공 함수 이용(sort, reverse) # list 제공 함수 이용(결과: 맞았습니다!) s = input() lst = list(s) lst.sort() lst.reverse() print(''.join(lst)) 리스트에서 제공하는 오름차순 정렬 함수 sort, 리스트에서 제공하는 순서 뒤집기 함수 reverse, 를 이용하여 문제를 해결하였다. sort, reverse는 lst변수에 담긴 list(s) 리스트 자체를 변경한다...
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_2108_통계학2021-12-16 15:25:25https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net N개의 입력 값으로 산술평균, 중앙값, 최빈값, 범위를 출력해야 한다. 제출 결과 "시간 초과"로 매우 고생했다. 범인은 최빈값! 시간 초과(리스트 count 메소드 사용) # 최빈값 구할 때 for문 사용하여 값의 빈도수(cnt) 구함(결과: 시간 초과) import sys N = int(sys.stdin.readline()) nums = [] for _ in range(N): nums.append(int(s..
728x90
반응형