본문 바로가기

728x90
반응형

백준 write-up/정렬 & 그리디

(84)
[백준] 콘테스트 : 5576번 - Python https://www.acmicpc.net/problem/5576 5576번: 콘테스트 최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다. 이번이 두 대 www.acmicpc.net 문제의 접근 방법 - W,K 대학의 점수를 나눠서 저장할 수 있는 방법 생각하기 - 내림차순 정렬 문제 풀이 방법 (1) W,K 대학의 점수를 10개씩 입력받기 (단, 두 리스트 arr1, arr2에 나눠서 저장할 것) (2) arr1, arr2 를 내림차순으로 정렬 (3) 높은 점수 3개 더해서 출력 소스코드 import sys arr1 = [] arr2 = [] for i in range(10): W =..
[백준] 수 정렬하기 4 : 11931번 - Python https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 [Python] 파이썬 입력 받기 (라이브러리 사용) -> (sys.stdin.readline) : 한 두줄 입력받는 문제들과 다르게, 반복문으로 여러줄을 입력 받아야 할 때는 input()으로 입력 받는다면 시간 초과가 발생할 수 있어서 sys.stdin.readline()을 사용해야 한다! # 한 개의 정수를 입력 받을 때 import sys a = ..
[백준] N번째 큰 수 : 2693번 - Python https://www.acmicpc.net/problem/2693 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1
[백준] 시리얼 번호 : 1431번 - Python https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 1,000보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루 www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] 리스트의 다중 조건 정렬 -> lamda 함수의 사용 & sort 함수의 사용 arr = list(map(int, input())) arr.sort(key=lambda x: (len(x), x)) # 리스트 arr를 길이 순으로 정렬하고, 길이가 같다면 사전 순으로 정렬하기 리스트에서 다중 조건을 기준으로 정렬할 때는 lamda 함수를 사..
[백준] 중복 빼고 정렬하기 : 10867번 - Python https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 [Python] 리스트 중복 제거 -> set 자료형(집합)을 이용해야 한다. : 리스트의 중복을 제거하되 기존 리스트의 순서를 유지하는 경우에는 여러가지 방법이 존재하는데, 그 중 sorted() 함수를 이용하는 방법에 대해 알게 되었다. L = [2, 3, 2, 2, 4, 5, 1] L = sorted(set(L)) print(L) >>> [1, 2, 3, 4, 5] 문제의 접근 방법 - n개의 ..
[백준] 점수 계산 : 2822번 - Python https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 문제를 풀면서 몰랐던 개념 [Python] enumerate 함수 -> 리스트가 있는 경우 순서와 리스트의 값을 전달하는 기능을 한다. for i, name in enumerate(['body', 'foo', 'bar']): print(i, name) # 출력 결과 0 body 1 foo 2 bar 0번째부터 출력되기 때문에 1번째부터 출력을 원하면 i+1을 해주면 된다! 문제의 접근 방법..
[백준] 접미사 배열 : 11656번 - Python https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) 인덱스를 사용해서 삭제하려면 remove 함수가 아니라 pop 함수를 사용해야 한다는 점. -> remove(값), pop(인덱스) (2) [Python] 문자열 슬라이싱 -> 시작 위치와 끝 위치를 지정하여 원하는 만큼 문자열을 잘라서 출력 >>> str = 'abcdefg' >>> print(str[2:]) cdefg >>> print(str[:2]) ab >>> print(str[2:3]) c >>> print(str[2:6]) cdef..
[백준] 보물 : 1026번 - Python https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] 리스트 요소 꺼내기 -> pop 함수: pop은 리스트에서 맨 마지막 요소를 출력하면서 그 요소를 리스트에서 삭제하는, 즉 리스트에서 꺼내버리는 함수이다. arr = [0, 1, 2, 3, 4, 5] arr.pop() print(arr) >>> [0, 1, 2, 3, 4] # 파이썬에서는 추가적으로 특정 위치에 있는 요소에 대해서 pop 함..

728x90
반응형