Koala - 7기/기초 알고리즘 스터디

2869번: 달팽이는 올라가고 싶다 (acmicpc.net) 문제 분석 분류 수학 문제설명 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 소스코드 문제풀이 위 혹은 아래로 움직이는 횟수를 n이라 하고 올라가는 길이를 a, 내려가는 길이를 b, 총..
문제 가위 바위 보는 두 명이서 하는 게임이다. 보통 미리 정해놓은 수 만큼 게임을 하고, 많은 게임을 이긴 사람이 최종 승자가 된다. 가위 바위 보를 한 횟수와 매번 두 명이 무엇을 냈는지가 주어졌을 때, 최종 승자를 출력하는 프로그램을 작성하시오. 바위는 가위를 이긴다. 가위는 보를 이긴다. 보는 바위를 이긴다. 입력 첫째 줄에는 테스트 케이스의 개수 t(0 < t < 1000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 가위 바위 보를 한 횟수 n(0 < n < 100)이 주어진다. 다음 n개의 줄에는 R, P, S가 공백으로 구분되어 주어진다. R, P, S는 순서대로 바위, 보, 가위이고 첫 번째 문자는 Player 1의 선택, 두 번째 문자는 Player 2의 선택이다. 출력 각 테스트 케이..
https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제분석 이 문제는 n을 입력받아 1,2,...n까지의 합을 출력하는 문제이다. 소스 코드 n=int(input()) i=1 total=0 while i
문제 코드 import sys int = sys.stdin.readline n = int(input()) #설탕의 총량 a = aa = n // 5 for i in range(a+1, 0, -1): b = n - (5*aa) #5kg을 빼고 남은 설탕 c = b // 3 #3kg으로 묶은 설탕봉지 수 nn = n - ((5*aa) + (3*c)) if nn == 0: print(aa + c) break else: aa -= 1 if aa == -1: print('-1') break continue 문제풀이 흔히 볼 수 있는 최소 개수 문제이다. 가장 적은 봉지 개수를 구하는 것은 어렵지 않으나, 이 문제의 관건은 남은 설탕이 0으로 떨어지지 않을 경우 -1을 출력하는 부분에 있을 것이다. 나는 5kg으로..
https://www.acmicpc.net/problem/13985 13985번: Equality Print, on a single line, YES if the sum is correct; otherwise, print NO. www.acmicpc.net 문제해석 연산식을 입력했을 때, 그 값이 올바른지 판단하여 Yes/No를 출력해주는 문제이다. 코드 #include #include using namespace std; int main() { char a[10]; cin.getline(a,10); if ((a[0] - '0') + (a[4] - '0') == (a[8] - '0')) cout
문제 https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 내림차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 내림차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제..
문제 링크 https://www.acmicpc.net/problem/2010 2010번: 플러그 첫째 줄에 멀티탭의 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 이어서 둘째 줄부터 N개의 줄에 걸쳐 각 멀티탭이 몇 개의 플러그를 꽂을 수 있도록 되어 있는지를 나타내는 자연수가 주어진다. 이 자연 www.acmicpc.net 문제 선영이의 집에는 콘센트를 꽂을 수 있는 플러그가 하나밖에 없다. 선영이는 많은 컴퓨터를 가지고 있는데, 컴퓨터의 전원 문제는 어떻게 해결하는 것일까? 하나의 플러그가 있고, N개의 멀티탭이 있다. 각 멀티탭은 몇 개의 플러그로 이루어져 있다고 한다. 최대 몇 대의 컴퓨터를 전원에 연결할 수 있을까? 입력 첫째 줄에 멀티탭의 개수 N이 주어진다. (1 ≤ N ≤ 500,0..
https://www.acmicpc.net/problem/14652 14652번: 나는 행복합니다~ 첫째 줄에 관중석의 크기를 나타내는 N, M과 잃어버린 관중석 번호를 나타내는 K가 주어진다. (1 ≤ N, M ≤ 30,000, 0 ≤ K ≤ N×M-1) www.acmicpc.net 소스 코드 문제 풀이 seat이라는 빈 리스트를 만들고, for반복문을 이용하여 N행 M열 리스트를 채웠다. 이 후, K번 자리의 좌표를 찾기 위해 while문과 if문을 이용하였다. 0행부터 K번이 있는 행을 찾고, 그 행에서 K번이 있는 열을 찾아 좌표를 출력하였다.
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 코드 #include #include using namespace std; int main() { int n, sum = 0; cin >> n; while (n > 0) { if ((n % 5) % 3 == 0) { sum += n / 5; n %= 5; sum += n / 3; n %= 3; } else { if (n - 3
1350번: 진짜 공간 (acmicpc.net) 1350번: 진짜 공간 첫째 줄에 파일의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 파일의 크기가 공백을 사이에 두고 하나씩 주어진다. 파일의 크기는 1,000,000,000보다 작거나 같은 음이 아닌 www.acmicpc.net 소스코드 문제풀이 이 문제도 굉장히 쉽게 풀었으나, 틀렸습니다 가 자꾸 나오길래 문제를 다시 꼼꼼히 읽어보니 수의 범위가 꽤 컸다. 한번에 풀지 못한 대부분의 문제들은 자료형의 문제인 경우가 많았기에 이 문제를 기회로 확실히 정리하기로 마음 먹었다. int는 4byte로 수의 범위는 -2,147,483,648 ~ 2,147,483,647 long은 메모리 크기는 8byte로 표현할 수 있는 범위는 -..
15726번: 이칙연산 (acmicpc.net) 15726번: 이칙연산 첫째 줄에 세 개 정수 A, B, C(1 ≤ A, B, C ≤ 1,000,000)가 주어진다. 답은 int범위를 벗어나지 않는다. www.acmicpc.net 소스코드 문제 풀이 문제를 봤을 때 굉장히 쉬워보였는데 (수의 순서가 같고, 곱하기와 나누기를 한번씩 사용하기 때문에 어려울 수 없다) 정답 비율이 낮길래 놀랐다. 당연히 처음에는 int 값을 3개 받고 * /, / * 순으로 계산한 값 2개를 비교해서 출력해보았는데 틀렸습니다 라는 결과가 나왔다. 답은 int 범위를 벗어나지 않는다고 했기 때문에 long을 사용할 필요도 없고 소수점 아래는 버리니까 int형끼리 계산하면 당연히 버려진다고 생각했다. 근데 출력을 정수형으로 하라..
문제 분석 소스 코드 문제 풀이 여러 개의 입력을 받을 때 사용하는 코드를 사용하였다. input().split() #문자열 map(int,input().split()) #숫자들 A와 B에 숫자를 입력하고 판별문을 사용하여 두 수를 비교하여 각각에 맞는 출력값들을 출력하도록 하였다.
KauKoala
'Koala - 7기/기초 알고리즘 스터디' 카테고리의 글 목록 (8 Page)