목록전체 글 (112)
just inside
문제 링크https://www.acmicpc.net/problem/1018문제 설명지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다.체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다.보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으..
문제 링크https://www.acmicpc.net/problem/11866문제 설명요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) 출력 예제와 같이 요세푸스 순열..
큐(Queue)란?데이터의 순서가 중요한 상황에서 자주 사용되는 자료구조FIFO (First-In-First-Out) : 먼저 들어간 데이터가 먼저 나오는 구조. 선입선출두 개의 끝점을 가짐front : 요소가 제거되는 쪽rear : 요소가 추가되는 쪽줄 서기나 대기열과 같은 개념에서 유래됨배열, 연결 리스트, 또는 데크(deque)로 구현할 수 있음 기본 동작enqueue : 큐의 끝에 요소 추가dequeue : 큐의 앞에서 요소 제거하고 반환데크(Deque)란?파이썬에서 구현된 큐 : collections 모듈에서 제공deque = Double-Ended Queue = 양방향 큐앞, 뒤 양쪽 방향에서 요소 추가 또는 제거 가능양 끝 요소의 append와 pop 속도가 매우 빠름일반적인 리스트의 경우,..
문자열 자료형에 사용할 수 있는 함수를 정리해보자. count문자 개수 세기문자열 중 원하는 문자의 개수 리턴>>> a = "hobby">>> a.count('b')2 find / indexfind - 문자열 중 원하는 문자가 처음으로 나온 위치 반환. 찾는 문자나 문자열이 존재하지 않으면 -1 반환# find>>> a = "Python is the best choice">>> a.find('b')14>>> a.find('k')-1index - 문자열 중 원하는 문자가 처음으로 나온 위치 반환. 찾는 문자나 문자열이 존재하지 않으면 오류 발생>>> a = "Life is too short">>> a.index('t')8>>> a.index('k')Traceback (most recent call last..
문제 링크https://www.acmicpc.net/problem/28702문제 설명FizzBuzz 문제는 i=1,2,⋯𝑖=1,2,⋯ 에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다. i𝑖가 33의 배수이면서 55의 배수이면 “FizzBuzz”를 출력합니다. i𝑖가 33의 배수이지만 55의 배수가 아니면 “Fizz”를 출력합니다. i𝑖가 33의 배수가 아니지만 55의 배수이면 “Buzz”를 출력합니다. i𝑖가 33의 배수도 아니고 55의 배수도 아닌 경우 i𝑖를 그대로 출력합니다.FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 주어집니다. 이때, 이 세 문자열 다음에 올 문자열은 무엇일까요? 입력 FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 한 ..
문제 링크https://www.acmicpc.net/problem/11050문제 설명자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 구하는 프로그램을 작성하시오. 입력첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) 출력\(\binom{N}{K}\)를 출력한다.제출 코드import sysinput = sys.stdin.readlinen, k = map(int, input().split())def factorial(n): if n == 0: return 1 return n * factorial(n-1) print(factorial(n) // (factorial(k) * fa..