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

문제선영이의 집에는 콘센트를 꽂을 수 있는 플러그가 하나밖에 없다. 선영이는 많은 컴퓨터를 가지고 있는데, 컴퓨터의 전원 문제는 어떻게 해결하는 것일까?하나의 플러그가 있고, N개의 멀티탭이 있다. 각 멀티탭은 몇 개의 플러그로 이루어져 있다고 한다. 최대 몇 대의 컴퓨터를 전원에 연결할 수 있을까?https://www.acmicpc.net/problem/2010 입력첫째 줄에 멀티탭의 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 이어서 둘째 줄부터 N개의 줄에 걸쳐 각 멀티탭이 몇 개의 플러그를 꽂을 수 있도록 되어 있는지를 나타내는 자연수가 주어진다. 이 자연수는 1,000을 넘지 않는다.출력첫째 줄에 최대로 전원에 연결될 수 있는 컴퓨터의 수를 출력한다.풀이 했던 방법'여러 입력을 받는 문..
https://www.acmicpc.net/problem/2839문제 풀이정확하게 나누어 떨어질 때, 3킬로그램의 갯수가 적을수록 더 적은 개수의 봉지를 가져갈 수 있다.최대의 3킬로그램으로 가져갈 때를 가정하여, max_pcs를 설정한다. (0개 일때도 고려하므로, +1)0부터 max_pcs까지, 3킬로그램 봉지의 갯수를 pcs로 설정하여 탐색한다.N킬로그램에서 pcs만큼의 3킬로그램 봉지를 가져간 나머지에 대해, 5킬로그램으로 나누어 떨어지면, 그 갯수와 pcs를 합한 값을 출력한다.has_answer의 플래그를 통해, 정확하게 N킬로그램을 만들 수 없는 상황에 대비한다.문제 코드N = int(input())has_answer = Falsemax_pcs = (N // 3) + 1for pcs in r..
https://www.acmicpc.net/problem/3003 문제 풀이 A, B, C, D, E, F의 총합은 16이며, A는 1, B는 1, C는 2, D는 2, E는 2, F는 8을 디폴트 값으로 잡겠습니다.킹(A), 퀸(B), 룩(C), 비숍(D), 나이트(E), 폰(F)의 값을 입력받습니다.그 후 각 디폴트 값을 입력 받은 값으로 빼내어 출력합니다.출력값으로 더하거나 빼야하는 피스의 개수를 확인할 수 있습니다.문제 코드A, B, C, D, E, F = map(int, input().split())print((1-A), (1-B), (2-C), (2-D), (2-E), (8-F))감사합니다.
https://www.acmicpc.net/problem/2869알고리즘 분류수학문제땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.CodeA, B, V = map(int,input().split())print(-(-(V - A) // (A - B)) + 1)문제풀이A, B, V를 정수형으로 입력받..
문제https://www.acmicpc.net/problem/4458문장을 읽은 뒤, 줄의 첫 글자를 대문자로 바꾸는 프로그램을 작성하시오.입력첫째 줄에 줄의 수 N이 주어진다. 다음 N개의 줄에는 문장이 주어진다. 각 문장에 들어있는 글자의 수는 30을 넘지 않는다. 모든 줄의 첫 번째 글자는 알파벳이다.출력각 줄의 첫글자를 대문자로 바꾼뒤 출력한다.풀이문장의 인덱싱과 슬라이싱, 대소문자 변환 메서드를 사용하겠습니다.문장을 입력 받아 첫번째 알파벳만 인덱싱으로 가져와 대문자로 출력 후, print함수의 end옵션을 이용하여 줄바꿈을 방지합니다.그 후 나머지 알파벳들을 슬라이싱으로 가져와 대문자로 출력된 첫 알파벳 뒤에 그대로 출력합니다.코드input1 = int(input())for i in range..
https://www.acmicpc.net/problem/3046문제풀이R1과 S를 입력받은 후 S = (R1+R2)/2 임을 이용하여  R2 = 2*S - R1임을 계산한다.코드
문제 15963번: CASIO (acmicpc.net) 코드
https://www.acmicpc.net/problem/17094 문제 풀이1. 문자열 길이 입력 받기2. 문자열 입력 받기3. 'e'의 개수를 나타내는 변수 선언과 동시에 0으로 초기화4. '2'의 개수를 나타내는 변수 선언과 동시에 0으로 초기화5. 해당 문자열 길이만큼 2인지 e인지 구분하는 수행 반복6. 해당 문자열의 i 인덱스가 2인지 e인지 구별하여 그에 맞는 변수값 1 증가7. 모든 반복을 끝낸 후 2의 등장횟수와 e의 등장횟수를 비교하여 경우에 맞는 출력값 출력 문제 코드 n = int(input())s = input()cnte = 0cnt2 = 0for i in range(n): if s[i] == "2": cnt2 += 1 else: cnte += ..
문제 & 링크https://www.acmicpc.net/problem/1350 풀이1. vector를 사용하여 각 파일의 크기를 저장한다. 이때 각 파일의 크기는 1,000,000,000이고, 최대 50개의 파일이 주어질 수 있으므로, 최대 50,000,000,000의 저장 공간이 필요하다. 따라서 vector의 자료형을 long long으로 설정해야 한다.2. 클러스터의 크기를 저장한다.3. 각 파일의 크기를 클러스터의 크기로 나눈다. 이때 나머지가 없을 경우 해당 몫을 count에 더하고, 나머지가 있을 경우 (몫 + 1)을 count에 더한다.4. 모든 파일에 대해 3의 과정을 반복한 후 클러스터의 크기와 count의 값을 곱해주면 사용한 디스크 공간을 얻을 수 있다. 코드#include #incl..
문제 & 링크https://www.acmicpc.net/problem/11365 풀이1. string과 getline() 함수를 사용하여 줄 단위로 암호를 입력 받는다.2. algorithm 헤더 파일의 reverse()함수를 사용하여 암호를 뒤집어서 해독한다.3. 1 - 2의 과정을 반복문을 이용하여 실행하고, if문으로 "END"가 나올 때 까지 반복한다. 코드#include #include #include using namespace std;int main() { string egassem; while(1) { getline(cin, egassem); if (egassem == "END") break; reverse..
https://www.acmicpc.net/problem/9012문제문제풀이괄호 문자열을 입력받아 문자 하나 하나를 리스트의 원소로 저장합니다. 반복문을 통하여 리스트의 원소를 탐색하다가 '('이 나오고 ')'이 나온 경우에는 리스트에서 소괄호 '('와 ')'를 삭제합니다. 이 과정을 재귀함수를 통하여 게속 반복한 후에, 만약 리스트가 빈 원소가 되었으면  문자열이 VPS를 성립하는 경우입니다. 소스코드# functiondef function(s): if len(s) == 0: return fl = len(s) for i in range(len(s)-1): if s[i] + s[i+1] == '()': s.pop(i); s.pop(i)..
https://www.acmicpc.net/problem/15917문제 풀이input = __import__('sys').stdin.readlineq = int(input())while q: a = int(input()) while a>1: if a % 2: a=0 a//=2 print(a) q-=11. 빠른 입력을 받아오기 위해 'sys'의 stdin.readline으로 input을 설정한다.2. 쿼리 a를 읽어온다.3. a==1이면 print(a)로 1을 출력한다.4. a>1이면 a가 홀수인지 체크해가면서 2로 나눠준다.5. a가 홀수라면 a=0으로 초기화 한 후 print(a)로 0을 출력한다.6. a를 2로 나누는 것을 반복하여 ..
KauKoala
'Koala - 15기/기초 알고리즘 스터디' 카테고리의 글 목록 (6 Page)