[백준 10989] 파이썬 - 수 정렬하기 3
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net # 조건 N개의 수가 주어질 때, 오름차순으로 정렬하여라. 첫 줄에 수의 개수 N(1
2022.09.17
[백준 2805] 파이썬 - 나무 자르기
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net # 조건 나무 M미터 필요한 상근이 목재 절단 높이 H설정 높이가 H보다 높은 나무는 H위의 부분 절단 자른 부분을 들고 집에 간다. H는 양의 정수 또는 0 필요한만큼만 들고 간다고 할 때, M미터의 나무를 집에 가져가기 위한 설정할 수 있는 높이의 최댓값 # 접근방법 브루트포스로 한다면 시간초과가 발생하기 때문에 이분탐색을 활용 처음엔 시작, 끝점을 중간..
2022.09.17
[백준 2108] 파이썬 - 통계학
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net # 조건 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 첫째 줄에는 산술평균을 출력한다. 소수점 이하 첫째 자리에서 반올림한 값을 출력한다. 둘째 줄에는 중앙값을 출력한다. 셋째 줄에는 최빈값을 출력한다. 여러 개 있을 때에는 최빈값 ..
2022.09.16
[SWEA 1486] 파이썬 - 장훈이의 높은 선반
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2b7Yf6ABcBBASw#none SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 조건 높이가 B인 선반과 N명의 점원 각 점원들의 키는 Hi 고 (1
2022.09.16
no image
[SWEA 1238] 파이썬 - Contact
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15B1cKAKwCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 조건 a-> b와 같은 순서로 비상연락망과 연락을 시작하는 당번에 대한 정보가 주어진다. 한 번에 여러 명에게 연락이 가능할 때 연락을 받을 수 있는 사람 중 가장 마지막에 받은 사람의 번호를 출력하라 이 때, 가장 마지막에 받은 사람이 여러 명이라면 제일 큰 번호 출력 # 접근 방법 bfs를 이용하여 연락가능한 사람들을 큐에 넣어준다. 이후 큐에 있는 번호를 pop해주며 연락 사이클을 돌려주는..
2022.09.16
[백준 1966] 파이썬 - 프린터 큐
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net # 조건 문서의 우선 순위에 따라 인쇄를 진행한다. 우선 순위는 동일할 수 있다. 우선 순위가 가장 높은 경우가 인쇄 차례일 때만 인쇄를 진행한다. 이 때 몇 번째로 인쇄되는지 궁금한 문서의 인덱스가 주어질 때 몇 번째 인쇄되는지 구하여라. # 접근 방법 문제에 나와있듯이 deque를 이용하여 앞에서의 출력, 뒤로 입력을 해주었다. 이 때, 처음 궁금했던 문서였음을 알리기 위하여 인덱스를 저장해주고,..
2022.09.16
[백준 11866] 파이썬 - 요세푸스 문제 0
https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net # 조건 1번부터 N번까지의 사람이 원을 이루며 앉아있고 양의 정수 K가 주어진다. K번째 사람을 제거하며 N명 모두가 제거 될 때까지 반복 제거되는 순서를 (N, K) - 요세푸스 순열이라고 한다. # 접근 방법 큐의 성질을 이용하여 '줄 세우기와 같이' 앞에서 빼주고 K번째가 아니라면 다시 APPEND해준다. 출력 모양이 좀 이상해서 좀 당황했지만 자료구조를 떠올린다면, 어려운 문제는 아니였다고 생각한다. N, K = map(int, input().split()) arr = [..
2022.09.15
[백준 10816] 파이썬 - 숫자 카드2
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net # 조건 숫자 카드는 정수 하나가 적혀있다. N개의 숫자카드를 입력 받는다 이후 주어지는 M개의 카드가 주어질 때 '같은 번호'의 카드가 몇 개인지 출력하라 # 접근 방법 및 SOLUTION 리스트를 정렬 후 counter 메서드를 이용하여 푸니 시간초과가 발생하였다. 이진 탐색 또는 딕셔너리를 활용해주는 것이 바람직해 보였고 딕셔너리 내에 각 카드 숫자의 개수를..
2022.09.14
[백준 10814] 파이썬 - 나이순 정렬
# 조건 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이 때, 나이가 적은 순으로, 나이가 같다면 등록순으로 출력하여라. # 접근 방법 버블 정렬을 이용하여 나이순으로 정렬해 줄 수 있다. 하지만 파이썬엔 sort라는 좋은 함수가 있고 lambda라는 또 다른 함수도 존재한다. 처음에 문자열로 받아주기 때문에 lambda x:x[0]로 정렬을 해준다면 문자열 기준 1 -> 9와 같이 보기 때문에 나이가 9살인 친구가 10인 친구보다 뒤로 가게 된다. 따라서 정렬 기준을 int형으로 바꿔준다. T = int(input()) people = [list(map(str, input().split())) for _ in range(T)] people.sort(key= lambda x:i..
2022.09.14