본문 바로가기

728x90
반응형

분류 전체보기

(203)
[백준] 시리얼 번호 : 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 함..
[백준] 좌표 정렬하기 2 : 11651번 - Python https://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 문제를 풀면서 몰랐던 개념 (1) [Python] 2차원 배열 만들기 -> 문제에서는 입력 받은 두 x,y 좌표 값을 묶어서 총 n개만큼 저장하여 리스트에 넣으려고 했기 때문에 2차원 배열이 필요했다. # 반복문을 통해 n번만큼 x,y 좌표 값을 입력받는다. for i in range(n): x,y = input().split() # x,y..
[백준] 소트인사이드 : 1427번 - Python https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 [Python] 숫자를 각 자리수의 list로 변환 -> map 함수를 사용하면 된다! n = 12345 n_list = list(map(int, str(n))) # 각 자리수를 문자열로 받아 하나하나씩 int형으로 변환해주어서 n_list에 넣는다. 문제의 접근 방법 - 각 자리수를 내림차순으로 정렬할 수 있도록 리스트로 변환하는 것이 포인트! - 마지막에 출력할 때, 리스트의 원소들을 붙여서 한 줄에 표현해야 한다는 점을 주의! 내가 막혔던 부분 아이디어..
[백준] ATM : 11399번 - Python https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] 한 줄에 정수형 변수 여러개 입력받기 -> 리스트에 map 함수를 사용하기!! 'map'은 리스트이 요소를 지정된 함수로 처리해주는 함수이다. map은 원본 리스트를 변경하지 않고 새 리스트를 생성한다. a = list(map(int, input().split())) 10 20 # (입력) >>> print(a) [10, 20] # a, b = input().split() 이렇..

728x90
반응형