https://www.acmicpc.net/problem/11024 11024번: 더하기 4 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, N(1 ≤ N ≤ 100)개의 수가 공백으로 구분되어서 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 www.acmicpc.net 다른 문제들을 풀면서 어려운 풀이법에 머리를 쓰느라 그런지 이 문제가 가장 오래 걸렸다ㅜㅜ [문제 풀이 방법] - 입력한 테스트의 수만큼 반복하는 것이 포인트 - 자연수 입력받아야 하니까 리스트 자연수로 구성 - sum 함수 이용해 data 리스트에 있는 값들의 합 출력 고민한거에 비해 굉장히 간단한 문제!!
Koala - 7기
문제 동혁이는 나무 조각을 5개 가지고 있다. 나무 조각에는 1부터 5까지 숫자 중 하나가 쓰여져 있다. 또, 모든 숫자는 다섯 조각 중 하나에만 쓰여 있다. 동혁이는 나무 조각을 다음과 같은 과정을 거쳐서 1, 2, 3, 4, 5 순서로 만들려고 한다. 첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 세 번째 조각의 수가 네 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 네 번째 조각의 수가 다섯 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 만약 순서가 1, 2, 3, 4, 5 순서가 아니라면 1 단계로 다시 간다. 처음 조각의 순서가 주어졌을 때, 위치를 바꿀 때 마다 조각의 순서를 출력하는 프로그..
https://www.acmicpc.net/problem/1673 1673번: 치킨 쿠폰 강민이는 치킨 한 마리를 주문할 수 있는 치킨 쿠폰을 n장 가지고 있다. 이 치킨집에서는 치킨을 한 마리 주문할 때마다 도장을 하나씩 찍어 주는데, 도장을 k개 모으면 치킨 쿠폰 한 장으로 교환 www.acmicpc.net 치킨 한 마리당 도장을 한 개 찍어주고, 도장을 여러 개(입력1) 모으면 치킨 쿠폰 한 장을 준다. 그 쿠폰으로 치킨 한 마리를 시켜 먹을 수 있다. 그렇다면 주어진 쿠폰(입력2)으로 몇 마리의 치킨을 시켜먹을 수 있는지 구하는 문제이다. 쿠폰으로 시켜먹은 치킨도 도장을 찍어준다는 점에 유의해야 한다. 반복이 얼마나 도는지 나와있지 않은 EOF문제이다. 처음에 EOFError 설정을 해주도록 한다..
https://www.acmicpc.net/problem/21608 [문제 해석] 1. 비어있는 칸 중에서 좋아하는 학생이 인접한 칸에 가장 많은 칸으로 자리를 정한다. 2. 1을 만족하는 칸이 여러 개이면, 인접한 칸 중에서 비어있는 칸이 가장 많은 칸으로 자리를 정한다. 3. 2를 만족하는 칸도 여러 개인 경우에는 행의 번호가 가장 작은 칸으로, 그러한 칸도 여러 개이면 열의 번호가 가장 작은 칸으로 자리를 정한다. 위 3가지 조건을 만족하는 자리배치를 하고, 좋아하는 학생 수에 따른 만족도 계산하여 출력하도록 한다. N = int(input()) st = [] for _ in range(N**2) : st.append(list(map(int, input().split()))) sit = [[0]*N..
https://www.acmicpc.net/problem/14465 14465번: 소가 길을 건너간 이유 5 첫 줄에 N, K, B (1 ≤ B,K ≤ N)가 주어진다. 그 다음 B줄에는 고장난 신호등의 번호가 하나씩 주어진다. www.acmicpc.net 문제분석 분류 투포인터 슬라이딩 윈도우 문제설명 횡단보도의 개수 N개 입력 고장난 신호등의 개수 B개 그리고 좌표 입력 탐색하고자 하는 길이 K 입력 배열의 길이가 가변적일 때: 투 포인터, 배열의 길이가 고정적일 때: 슬라이딩 윈도우 슬라이딩 윈도우 -> O(N)의 속도로 탐색 입력 10 6 5 2 10 1 5 9 출력 1 코드 #include #include using namespace std; int main() { int N, K, B; ci..
https://www.acmicpc.net/problem/2947 2947번: 나무 조각 첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다. www.acmicpc.net 문제분석 풀이코드
https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 코드 ##17135 캐슬_디펜스 import copy from itertools import combinations as cm n, m, d = map(int, input().split()) enemies = [] for _ in range(n): row = list(map(int, input().split())) enemies.append(row) distance = -1 if d
https://www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net 문제 분석 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 수 있는 쌍의 개수는 7가지가 있다. 8-3, 8-6, 8-1, 7-3, 7-6, 7-1, 3-1. 두 ..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제분석 분류 구현, 브루트포스 알고리즘, 백트래킹 문제설명 크기가 NxN인 도시가 있고, 도시는 1x1 크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타나고, r과 c는 1부터 시작한다. 치킨 거리: 집과 가장 가까운 치킨집 사이의 거리 → (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r..
1874번: 스택 수열 (acmicpc.net) 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 소스코드 문제풀이 문제를 이해하는 데 많은 시간이 걸렸다. 숫자를 하나씩 입력받으면서 스택에 넣고 미리 오름차순으로 만들어놓은 벡터의 값과 같으면 꺼낸다. 마지막 숫자가 꺼내지면 벡터에 있는 값과 같아야한다. 만약 다르다면 만들 수 없는 수열이다. 개인적으로 이번 주차에서 가장 어려운 문제였다.
https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 소스 코드 문제 풀이 key(책이름),value(빈도수) 딕셔너리를 이용하였다. 우선 책이름을 입력받아 딕셔너리에 없는 값이면 추가, 딕셔너리에 이미 있는 값이면 빈도수 + 1을 해주었다. 그 후 최대값을 가진 책이름만 따로 뽑아 리스트를 만들었고, 그 리스트를 정렬한 후 맨 앞의 값을 출력하였다.