https://www.acmicpc.net/problem/18110 문제 분석배열에 입력 받은 값을 넣고, 정렬배열 길이의 15% 만큼의 값을 앞뒤로 제외나머지 중간 값들의 평균 구하기 소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..
2023년 2월 12일에 작성됨 https://www.acmicpc.net/problem/9656 9656번: 돌 게임 2 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 문제 분석 n이 1이면, CY 2이면, SK 3이면, CY 4이면, SK 5이면, CY 6이면, SK ... 따라서 n이 2의 배수일 때, 상근이가 게임을 이긴다는 규칙이 있다. 소스 코드 (⭕) #include int main() { int N; scanf("%d", &N); if (N % 2 == 0) { printf("SK\n"); } else { printf("CY\n"); } return 0; } 코드 분석 1. n을 입력받는다. 2. if문으로 n을 2로 나눈 나머지가 0..
2023년 1월 14일에 작성됨 https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 문제 분석 너비 우선 탐색 BFS 알고리즘을 이용하여 문제를 풀 수 있다. 소스 코드 (⭕) from collections import deque import sys input = sys.stdin.readline n = int(input()) # 게임 구역의 크기 n 입력 board = [] for _ in range(n): board.append(list(map(i..
2022년 12월 8일에 작성됨 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 문제 분석 집합 s에 있는 문자열과 검사해야 하는 문자열을 입력받고, 집합 s에 검사할 문자열이 있으면 카운트 해준다. 소스 코드 (⭕) import sys input = sys.stdin.readline n, m = map(int, input().split()) s = set() for _ in range(n): s.add(inpu..
2022년 12월 6일에 작성됨 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 문제 분석 (A-B)와 (B-A)의 길이의 합을 출력하면 되는 문제 소스 코드 (⭕) import sys input = sys.stdin.readline n, m = map(int, input().split()) a = set(map(int, input().split())) b = set(map(int, input().split())) print(len(a-b..
2022년 11월 29일에 작성됨 https://www.acmicpc.net/problem/13699 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 문제 분석 점화식이란? 수열의 항(項) 사이에 성립하는 관계식 문제에서 주어진 점화식을 보면, t(n) = t(0)*t(n-1) + t(1)*t(n-2) + ... + t(n-1)*t(0) *을 기준으로 앞의 식은 t..
2022년 11월 4일에 작성됨 https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 문제 분석 정렬하는 sort함수를 이용하여 문제에서 주어진 조건에 따라 순서를 정하여 출력한다. 소스 코드 (⭕) n = int(input()) lst = [] for i in range(n): name, kor, eng, math = list(map(str, input().split())) lst.append([name, int(kor), i..
2022년 8월 21일에 작성 https://www.acmicpc.net/problem/15828 15828번: Router 인터넷을 사용하기 위해서는 컴퓨터에 인터넷 회선을 연결하거나 Wi-Fi를 연결해야 한다. 이렇게 연결된 네트워크를 통해 컴퓨터에는 통신이 가능하다. 마음에 드는 노래나 동영상이 있는 곳에 www.acmicpc.net 문제 분석 큐(queue) 자료 구조에서 데크(deque) 자료 구조를 이용한다. 소스 코드 (⭕) from collections import deque import sys input = sys.stdin.readline n = int(input()) buffer = deque() while True: x = int(input()) if x == -1: break if..
2022년 8월 12일에 작성됨 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 문제 분석 정수 k를 입력하고, k개의 정수 num을 입력한다. num이 0인 경우와 0이 아닌 경우로 나눠서 0이라면 리스트의 최근의 수를 지우고, 아니라면 num을 리스트에 추가한다. 최종적으로 리스트에 있는 수들의 합을 출력한다. 소스 코드 (⭕) stack = [] # 스택 리스트 생성 k = int(input()) for ..