https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 문제 : 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에..
https://www.acmicpc.net/problem/14247 14247번: 나무 자르기 영선이는 나무꾼으로 나무를 구하러 오전에 산에 오른다. 산에는 n개의 나무가 있는데, 영선이는 하루에 한 나무씩 n일 산에 오르며 나무를 잘라갈 것이다. 하지만 이 산은 영험한 기운이 있어 www.acmicpc.net 문제 : 영선이는 나무꾼으로 나무를 구하러 오전에 산에 오른다. 산에는 n개의 나무가 있는데, 영선이는 하루에 한 나무씩 n일 산에 오르며 나무를 잘라갈 것이다. 하지만 이 산은 영험한 기운이 있어 나무들이 밤만 되면 매우 빠른 속도로 자라는데, 그 자라는 길이는 나무마다 다르다. 따라서, 어느 나무를 먼저 잘라가느냐에 따라서 총 구할 수 있는 나무의 양이 다른데, 나무의 처음 길이와 하루에 자라..
https://www.acmicpc.net/problem/13417 13417번: 카드 문자열 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처 www.acmicpc.net 문제 : N장의 카드가 일렬로 놓여있다. 각 카드에는 알파벳이 하나씩 적혀있다. 태욱이는 가장 왼쪽에 있는 카드부터 차례대로 한 장씩 가져올 수 있다. 가장 처음에 가져온 카드는 자신의 앞에 놓는다. 그다음부터는 가져온 카드를 자신의 앞에 놓인 카드들의 가장 왼쪽, 또는 가장 오른쪽에 놓는다. 태욱이는 모든 카드를 다 가져온 후에 자신의 앞에 놓인 카드를 순서대로 이어 붙여 카드 문자열을 만들려고..
입출력 입력받은 문자열을 띄어쓰기로 구분해 정수형으로 저장 list(map(int, input().split()) 빠르게 입력받기 import sys sys.stdin.readline().rstrip() rstrip()? readline()시 줄바꿈 기호로 입력된 공백문자 제거하기 위해 ord() : char → int print(ord('a')) #97 print(chr(ord('a'))) #a import random random() : 0.0과 1.0사이 난수 print(random.random()) randrange(start, stop, step) import random for i in range(5) : print(random.randrange(1, 9, 2)) ..
내장함수 #리스트의 원소 합 result = sum([1,2,3,4,5]) #리스트의 최소값 result = min([1,2,3,4,5]) #리스트의 최대값 result = max([1,2,3,4,5]) #문자열 수식 계산 result = eval("(3+5)*7") itertools permutations : r개의 데이터를 뽑아서 일렬로 나열하는 모든 경우 combinations : r개의 데이터를 뽑아서 순서 상관없이 나열하는 모든 경우 product : r개의 데이터를 뽑아서 일렬로 나열하는데 중복 허용 combinations_with_replacement : r개의 데이터를 뽑아서 순서 상관없이 나열하는데 중복 허용 from itertools import permutations, combinat..
기본 문법 전역변수 a=0 def func(): global a a+=1 자료형 실수형 지수 표현방식 제공 → 최단경로 문제에서 가능한 최대값이 10억미만일때 자주 사용 a = 1e9 #10^9표현 산술연산자 나누기 #나머지 구하기 x = 10 % 3 #몫 구하기 y = 10 // 3 #나누기 -> 실수로 반환 z = 7 / 3 거듭제곱 x = 2**3 문자열 문자열 반복 hi = '안녕'*5 문자열 포매팅 % 이용 height = 172.5 a = '키는 %.2f입니다.' % height print(a) str.format 이용 → 자료형 몰라도 가능 test = 'Hello {}'.format('Bob') print(test) 자릿수 맞추기 y..
https://www.acmicpc.net/problem/13413 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검 www.acmicpc.net 문제 : 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검정, 뒷면이 흰색으로 된 말이다. 세희의 목표는 로봇을 이용하여 처음 배치된 오셀로 말을 주어진 형태로 바꾸는 일을 하는 것이다. 아래의 예시를 참고하자. 초기 상태목표 상태 ○●●○○ ○●○●○ 세희는 로봇..
https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 문제 : 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의..
https://www.acmicpc.net/problem/13019 13019번: A를 B로 첫째 줄에 A, 둘째 줄에 B가 주어진다. 두 문자열의 길이는 같으며, 길이는 50을 넘지 않는다. 또, 알파벳 대문자로만 이루어져 있다. www.acmicpc.net 문제 : 문자열 A와 B가 주어진다. 한 번 문자열을 바꾸는 것은 A의 한 글자를 골라서 문자열의 가장 처음으로 옮기는 것을 의미한다. A를 B로 바꾸기 위해서 문자열을 바꿔야 하는 횟수의 최솟값을 구하는 프로그램을 작성하시오. 풀이 : 우선, 두 문자열이 같은 문자들로 이루어져 있는지 확인하고, 글자수가 2글자 이상인지 확인해준다. 두 조건에 모두 통과한다면 뒤에서부터 다른 문자를 만날 때마다 앞으로 보내주는 작업을 진행하면 된다. 소스코드 : ..