2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net 1. 문제 내용 2. 접근 방식 육각형을 두 덩어리로 쪼개 각각 넓이를 구하자. 1번째와 2번째로 입력받은 사격형의 넓이와 4번째와 5번째로 입력받은 사각형 넓이를 각각 구한다. 그러면 처음에 입력받기 시작하는 임의의 꼭짓점 위치에 따라서 위 그림처럼 2가지 방법으로 육각형이 쪼개진다. 각 덩어리의 넓이를 더할 때와 뺄 때를 구분하기 위해 가장 긴 가로와 세로을 가진 사각형의 넓이를 구하자. 위 그림에서 1번째 케이스는 두 사각형을 합해야 하지만, 2번째 케이..
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 1. 문제 내용 2. 접근 방식 입력되는 정수의 개수가 최대 50만이므로, 최대한 입력 받은 정수 리스트 순회를 줄이자. 이에, 정수를 입력받을 때 산술평균을 위한 sum 계산과 최빈값을 위한 각 수의 카운팅을 수행한다. 입력 받은 정수 리스트를 정렬하는 것은 불가피하므로, 인덱싱을 활용하자. 중앙값을 구하려면 리스트를 오름차순 정렬해야 한다. 그리고 이를 중앙값 뿐만 아니라, 범위를 구할 때도 활용하자. mi..
1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 1. 문제 내용 2. 접근 방식 문제에 언급된 조건을 그대로 구현하자. 현재 문서는 0번째이고, 이것보다 중요도가 높은 문서가 있는지 확인하기 위해 max( ) 내장함수를 사용하여 값을 비교한다. 만약 0번째보다 더 큰 중요도를 가진 문서가 있다면, 0번째 문서를 pop( )하고 큐의 맨 뒤에 추가한다. 실행 순서를 카운팅하기 위해 타겟 문서의 인덱스 m을 추적하자. 현재 문서보다 중요도가 높은 문서가 있어서 큐의 맨 뒤로 이동하든, 현재 문서가 프린트되든 타겟 문..
1213번: 팰린드롬 만들기첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.www.acmicpc.net1. 문제 내용 2. 접근 방식팰린드롬이 가능하기 위한 조건을 고민하자모든 알파벳이 짝수 개씩 있을 경우딱 한 개의 알파벳만 홀수 개가 있고, 나머지는 모두 짝수 개씩 있을 경우팰린드롬을 만들 수 있는지, 없는지를 알아내기 위해선 각 알파벳의 개수를 카운팅해야 한다. 따라서 key는 알파벳을, value는 해당 알파벳의 개수를 나타내는 딕셔너리를 생성할 필요가 있다. 조건을 만족할 경우, 어떤 원리로 팰린드롬을 만들까?AAAABB가 입력문일 때, AABBAA, BAAAAB 2개의 팰린드롬이 ..