Koala - 7기

11880번: 개미 (acmicpc.net) 11880번: 개미 승현이는 방학을 맞아 심심하지만, 공부는 하기 싫습니다. 이렇게 방 안에서 하루하루 시간을 낭비하던 중, 승현이는 자신의 직육면체 모양의 지우개에 개미 한 마리가 붙어 있다는 것을 알게 www.acmicpc.net 소스코드 문제풀이 처음에는 그려진 그림에 따라서 A, B만 존재하는줄 알고 가로^2 + (세로+높이)^2만 하면 되는 줄 알아서 틀렸었다. 하지만 문제에서 서로 반대편에 위치 했다고 나와있었다. 즉, 직육면체를 펴보면 가장 큰 값이 다른 값과 더해지지 않고 그 자체로 제곱이 되어야 길이가 가장 짧기 때문에 max,min 함수를 이용하여 구현하였다. 그리고 주어진 수의 범위는 int로 표현할 수 있지만 제곱되면 표현하기 어렵기 때문..
https://www.acmicpc.net/problem/5533 5533번: 유니크 첫째 줄에 참가자의 수 N이 주어진다. (2 ≤ N ≤ 200) 둘째 줄부터 N개 줄에는 각 플레이어가 1번째, 2번째, 3번째 게임에서 쓴 수가 공백으로 구분되어 주어진다. www.acmicpc.net 문제분석 참가자 수만큼 이차원 배열에 입력받는다. 이때 이차원배열의 구성을 헷갈리지 않도록 주의해야한다. 소스코드 n = int(input()) score = [[], [], []] sum = [] for i in range(n): a, b, c = map(int, input().split()) score[0].append(a) score[1].append(b) score[2].append(c) for i in rang..
https://www.acmicpc.net/problem/15821 15821번: 낚이고 낚아라 최소 k개의 유효 낚시터를 확보할 수 있는 최소의 낚시 거리를 계산한 후, 이를 제곱한 값을 출력한다. 소수점 세 번째 자리에서 반올림하여 두 번째 자리까지 출력한다. www.acmicpc.net 좌표 평면에 다각형 모양의 낚시터가 여러개 있다. (그 다각형의 좌표는 모두 입력으로 주어진다.) n개의 낚시터 중 최소 k개의 낚시터가 원점(0,0)에서 도달 가능하게 하기 위한 낚싯대의 최소 길이를 구하는 문제이다. 원점과 낚시터 한 곳의 관계를 생각해봤을 때, 그 다각형 영역에 모두 닿을 수 있으려면 낚시대의 길이는 최소 원점에서 가장 먼 꼭짓점과의 거리와 같아야 한다. 때문에, 두 점사이의 거리 공식을 사용하..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제분석 분류 자료구조, 우선순위 큐 문제설명 배열에 정수 x(x ≠ 0)를 넣는다. 입력에서 0이 주어지는 횟수만큼 답을 출력한다. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다. 만약 배열이 비어 있는 경우인데 절댓값이 가장 작은 값을 출력하라고 한 경우..
https://www.acmicpc.net/problem/2999 2999번: 비밀 이메일 정인이는 원래 "bombonisuuladici"를 보내려고 했다. 이 메시지는 16글자이므로, 정인이는 1*16, 2*8, 4*4 행렬을 선택할 수 있다. R이 가장 큰 것은 4*4이므로, 4*4를 선택한다. 정인이가 만든 행렬은 다음과 www.acmicpc.net 문제 소스 코드 문제 풀이 리스트형식으로 입력받고, 먼저 for문과 if문을 이용하여 R(행)과 C(열)을 구합니다. R개의 빈리스트가 들어있는 이차원 리스트를 만들고, 0행 0열 -> 1행 0열 -> ...->5행 0열-> ...->R행 C열 순으로 입력값을 넣습니다. 그리고 0행 0열 -> 0행 1열 -> ...-> 0행 5열-> R행 C열 순으로 ..
1. 문제 11179번: 2진수 뒤집기 희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은. www.acmicpc.net 입력받은 n을 2진법으로 나타낸 뒤, 2진법을 나타낸 수를 뒤집는다. 그리고 그 수를 다시 10진법으로 변환시켜 출력하는 문제이다. 2. 코드 n=int(input()) arr=bin(n) #10진수 n을 2진수로 변환 , arr타입은 str arr=arr[2:] #0b를 없애주자! 3번째 수부터 출력 arr_reverse=arr[::-1] #뒤집어주기 num=int(arr_reverse,2) print(num) 3. 문제풀이 - 우선 2진수와 10진수 ..
백준 17298 오큰수 Intro Solution 결과를 출력할 리스트를 미리 만들고, -1로 가득 채워 초기화한다. 주어진 수열의 수를 인덱스와 함께 스택에 저장한다. 수열을 순회하며 스택의 꼭대기에 있는 수와 비교한다. 꼭대기의 수가 더 클 경우, 결과 리스트에 그 값을 저장한다. Code def solve(): n = int(input()) A = list(map(int, input().split())) stack = [] nge = [-1]*n for i, a in enumerate(A): while stack: if stack[-1][1] < a: j, _ = stack.pop() nge[j] = a else: break stack.append((i, a)) print(*nge) solve()
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제분석 N명의 사람이 원을 이루면서 앉아있을 때, K번째 사람을 모든 사람이 제거될 때까지 계속 반복하는 문제이다. 코드 from collections import deque n, k = map(int, input().split()) queue = deque(range(1, n + 1)) answer = [] while queue: for _ in range(k-1): queue.append(queue.popleft()) answer.append(queue.popleft()) print..
https://www.acmicpc.net/problem/2164 [문제 해석] 본 문제는 큐를 사용해 푸는 문제로, N장의 카드를 입력해 1~N의 수를 큐에 입력하여, Q를 주어진 조건에 맞게 pop, push를 활용해 푸는 문제이다. [소스코드] from collections import deque N = int(input()) deque = deque([i for i in range(1, N+1)]) while(len(deque) >1): deque.popleft() move_num = deque.popleft() deque.append(move_num) print(deque[0]) [문제 해결] deque를 사용하여, deque의 배열 길이가 1보다 클 때 반복하도록 한다. 가장 왼쪽에 있는 원소..
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 문제 분석 나는 이 문제를 정상적인 체스판과 '다른' 부분들의 개수를 찾는 것이라고 생각했다. 여기서 정상적인 체스판이란 8 x 8의 W부터 시작하는 체스판과 B부터 시작하는 체스판, 2 종류이다. 프로그래밍이니 B와 W라는 표현은 적합하지 않으므로, 각각 0과 1로 치환하여 2차원 벡터를 만들었다. => 이 두 벡터는 chess1, chess2라 명명한다. 멀쩡한 체스판과 '다른' ..
2346번: 풍선 터뜨리기 (acmicpc.net) 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 문제 해석 N개의 풍선이 원형으로 놓여있고 안에는 숫자가 적혀있다. 풍선을 터뜨린 후 안의 숫자만큼 이동 후 다시 풍선을 터뜨리는 식으로 진행된다. 코드 문제 풀이 원형이기 때문에 앞뒤로 빼고 넣기 위해 자료구조로 덱을 사용하였다. 풍선 번호를 나타내는 덱과 풍선 안의 숫자를 나타내는 덱을 따로 que와 paper의 이름으로 선언해주었다. 처음 for문을 통해 덱에 알맞은 숫자들은 넣어 주고 ..
2729번: 이진수 덧셈 (acmicpc.net) 2729번: 이진수 덧셈 이진수 덧셈은 매우 간단하고, 십진수 덧셈과 비슷하게 하면 된다. 십진수 덧셈을 할 때는, 오른쪽부터 왼쪽으로 차례대로 숫자 하나씩 더하면 된다. 이진수 덧셈도 이와 비슷하게 하면 된다. 십 www.acmicpc.net 문제분석 분류 수학 구현 사칙연산 문제설명 입력 출력 소스코드
KauKoala
'Koala - 7기' 카테고리의 글 목록 (4 Page)