[ BOJ ] 21922 : 학부 연구생 민상 ( GOLD 5 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/21922) 문제 학부 연구생으로 새로 연구실에 들어온 민상이는 사용할 자리를 정하려고 한다. 연구실은 격자 모양으로 되어있고 에어컨에서 바람이 상,하,좌,우 4방향으로 분다. 물론 에어컨이 위치한 곳에도 바람이 분다. 민상이는 더위를 많이 타서 에어컨 바람이 지나가는 곳 중 하나를 선택하여 앉으려고 한다. 연구실에는 다양한 물건들이 있어 바람의 방향을 바꾼다. 연구실에 있는 물건의 종류는 총 4가지가 있다. 아래 화살표의 의미는 바람이 각 물건에서 바람의 이동을 표시한 것이다. 연구실 어디든 민상이가 앉을 수 있는 자리이다. 즉 에어컨이 위치한 자리와 물건이 있는 자리 모두 앉을 수 있다. 민상이가 원하는 자리는 몇 개 있는..
[ CodeUp ] 코드업으로 꾸준히 PS 연습하기 13일차 ( 1126 ~ 1138 )
·
-- 예전 기록/CodeUp
1126, 1127 정수, 실수 사칙연산 문제이다. 1128 접미사 L 을 이용하여 형변환하여 풀이했다. 1131, 1132, 1133 문자 입출력 문제이다. 1135, 1136, 1137, 1138 관계 연산자, 논리 연산자 문제이다.
[ BOJ ] 31229 : 또 수열 문제야 ( SILVER 5 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/31229) 문제 다음 조건을 만족하는 길이 N의 수열 A = {A_1, A_2,…,A_N}를 출력하시오. 1≤ i < j ≤ N을 만족하는 모든 정수 i와 j에 대해서 다음 조건을 만족한다. A_i != A_j이고 수열 A의 모든 원소는 1 이상 10^9 이하의 정수이다. A_i + A_j는 A_i × A_j의 약수가 아니다. 입력 첫째 줄에 수열 A의 길이를 나타내는 정수 N이 주어진다. (2 ≤ N ≤ 5 000) 출력 첫째 줄에 조건을 만족하는 수열 A의 원소들을 공백으로 구분하여 출력한다. 위 조건을 만족하는 수열이 여러 개라면 그중 아무거나 출력한다. 풀이 과정 위 조건을 만족하는 수열은 홀수 수열이다. 홀수와 홀수..
[ BOJ ] 16956 : 늑대와 양 ( SILVER 3 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/16956) 문제 크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치를 지키고 있고, 늑대는 인접한 칸을 자유롭게 이동할 수 있다. 두 칸이 인접하다는 것은 두 칸이 변을 공유하는 경우이다. 목장에 울타리를 설치해 늑대가 양이 있는 칸으로 갈 수 없게 하려고 한다. 늑대는 울타리가 있는 칸으로는 이동할 수 없다. 울타리를 설치해보자. 입력 첫째 줄에 목장의 크기 R, C가 주어진다. 둘째 줄부터 R개의 줄에 목장의 상태가 주어진다. '.'는 빈 칸, 'S'는 양, 'W'는 늑대이다. 출력 늑대가 양이 있는 칸으로 갈 수 없게 할 ..
[ BOJ ] 11780 : 플로이드 2 ( GOLD 2 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/11780) 문제 n(1 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타는데 필요한 비용 c로 이루어져..
[ BOJ ] 15658 : 연산자 끼워넣기 (2) ( SILVER 2 ) / C
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/15658) 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 연산자의 개수는 N-1보다 많을 수도 있다. 모든 수의 사이에는 연산자를 한 개 끼워넣어야 하며, 주어진 연산자를 모두 사용하지 않고 모든 수의 사이에 연산자를 끼워넣을 수도 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) ..
[ BOJ ] 2553 : 마지막 팩토리얼 수 ( SILVER 2 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/2553) 문제 N!의 값을 계산한 후에, 0이 아닌 가장 낮은 자리 수를 구하시오. 예를 들어, 4! = 24 이기 때문에, 0이 아닌 가장 낮은 자리 수는 4이다. 또, 5! = 120이기 때문에, 0이 아닌 가장 낮은 자리 수는 2 이다. 입력 첫째 줄에 N이 주어진다. N은 20,000보다 작거나 같은 자연수 이다. 출력 첫째 줄에 N!의 0이 아닌 마지막 자리수를 출력한다. 풀이 과정 N! 을 구하기 위해 1부터 N까지 계속 곱하면서, 가장 낮은 자리 수가 0일 때 이를 모듈러 연산으로 계속 지워줌으로써 0이 아닌 마지막 자리수를 구한다. 계산값이 유지되도록 충분히 큰 수로 나눈 나머지를 유지해주었다. import s..
[ BOJ ] 17829 : 222-풀링 ( SILVER 2 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/17829) 문제 조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 222-풀링이라 부르기로 했다. 다음은 8×8 행렬이 주어졌다고 가정했을 때 222-풀링을 1회 적용하는 과정을 설명한 것이다 행렬을 2×2 정사각형으로 나눈다. 각 정사각형에서 2번째로 큰 수만 남긴다. 여기서 2번째로 큰 수란, 정사각형의 네 원소를 크기순으로 a4 ≤ a3 ≤ a2 ≤ a1 라 했을 때, 원소 a2를 뜻한다. 2번 과정에 의해 행렬의 크기가 줄어들게 된다. 종욱이는 N×..
[ BOJ ] 13913 : 숨바꼭질 4 ( GOLD 4 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/13913) 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 첫째 줄에 수빈이가 동생을 ..
[ CodeUp ] 코드업으로 꾸준히 PS 연습하기 12일차 ( 1116 ~ 1125 )
·
-- 예전 기록/CodeUp
1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124 정수, 실수 사칙연산 문제이다. 문제를 보고 식을 그대로 출력하면 풀이할 수 있다. 1125 %o, %X 를 이용해 풀이할 수 있다.
[ BOJ ] 17130 : 토끼가 정보섬에 올라온 이유 ( GOLD 4 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/17130) 문제 토끼가 정보섬에 올라왔다! 정보섬은 N행 M열의 격자로 나타낼 수 있으며, 어째서인지 여기저기에 당근이 떨어져 있다. 방금 토끼 한 마리가 정보섬 정문으로 들어왔다. 토끼의 왼쪽에선 사나운 늑대가 쫓아오고 있어서, 토끼는 →, ↘, ↗ 방향으로만 이동한다. 토끼는 나가는 길에 최대한 많은 당근을 줍고싶다. 정문은 늑대 때문에 위험하므로 쪽문으로 나가야 하며, 토끼가 당근을 줍기 위해서는 그 당근이 있는 위치를 지나야 한다. 토끼가 어떤 쪽문에 도착했을때 반드시 그 문으로 탈출할 필요는 없으며, 더 움직여서 다른 쪽문으로 탈출해도 된다. 토끼는 얼마나 많은 당근을 주워갈 수 있을까? 토끼의 이동을 명확하게 정의..
[ BOJ ] 20047 : 동전 옮기기 ( GOLD 2 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/20047) 문제 100 원짜리 동전과 10 원짜리 동전이 임의의 순서로 한 선 위에 나열되어 있다고 하자. 이제 여기서 ‘두 손가락 이동’ 을 아래와 같이 정의하자. 단계 1: 임의의 두 동전을 선택한다. 단계 2: 단계 1 에서 선택한 두 동전을 둘의 순서를 유지한 채 임의의 위치로 이동한다. (두 동전 모두 제자리에 있거나 두 동전의 순서를 유지한다면 하나만 이동해도 된다.) ‘두 손가락 이동’ 후에도 다른 동전들 간의 순서는 그대로 유지된다. 예를 들어 100 원을 o, 10 원을 x 라 했을 때, 초기에 동전이 oxoxoxxxoo 와 같이 나열되어 있다 하자. 이제 이들 중 굵게 표시된 두 동전을 선택하여 두 손가락 ..