문제 풀이n, m, b를 입력받는다.땅의 높이를 2차원 배열을 통해 입력받고, 땅의 높이의 최솟값과 최댓값을 구한다.최솟값부터 최댓값까지의 모든 높이에 대해 시간을 모두 구해보고, 가장 짧은 시간을(같은 경우가 있다면 더 높은 층으로) 선택한다.블록의 개수가 음수로 남는다면, 불가능한 상황이므로 continue를 통해 고려하지 않는다. 코드
Koala - 15기/기초 알고리즘 스터디
https://www.acmicpc.net/problem/14425문제 풀이N, M을 정수형태로 입력받습니다.(시행착오 1)S를 딕셔너리로 준비해놓고, 공통값과 함께 초기화합니다.N개의 줄만큼 S에 문자열을 입력받습니다.S에 입력받은 문자열과 중복을 비교할 문자열을 M개의 줄만큼 입력받습니다.출력값으로 겹치는 문자열의 개수를 확인할 수 있습니다.시행착오1. S를 리스트로 받았습니다. 빠른 탐색을 위해선 list보다 set이나 dict형태의 해시테이블을 이용하는 자료구조가 효율적입니다.문제 코드N, M = map(int, input().split())S = dict()common_val=0for _ in range(N): S_item = input() S[S_item] = Truefor _ in..
문제풀이1. 첫 번째 줄의 개수만큼 입력받고 그 개수만큼 반복하여 실행한다.2. split이용하여 띄어쓰기 단위로 분리한다.3. 분리하여 첫 번째 요소를 뒤에 있는 글자(두 번째 요소)와 곱한 개수만큼 출력한다.소스코드n = int(input())for i in range(n): a = input() s = a.split() for q in s[1]: print(q * int(s[0]), end = "") print()
풀이def calculate_disk_space(files, cluster_size): total_space = 0 for file_size in files: if file_size == 0: continue # 클러스터 수 계산 clusters_needed = (file_size + cluster_size - 1) // cluster_size # 사용한 디스크 공간 계산 total_space += clusters_needed * cluster_size return total_space # 입력 받기 import sys input = sys.stdin.read data = input().st..
https://www.acmicpc.net/problem/17219문제 풀이1. 총 사이트-비밀번호 쌍의 수와 찾으려는 비밀번호의 개수 입력받기2. 총 쌍의 수만큼 반복하며 입력받은 정보를 딕셔너리 자료구조에 사이트주소(key), 비밀번호(value)로 추가하기3. 찾으려는 비밀번호 개수만큼 반복하며 비밀번호를 찾고자 하는 사이트 입력받기4. 해당 사이트(key)에 맞는 비밀번호(value) 출력 문제 코드import sysinput = sys.stdin.readlinen, m = map(int, input().split())password = {}for i in range(n): key, value = input().split() password[key] = value for i in ..
https://www.acmicpc.net/problem/14652문제풀이x축은 K값을 M으로 나눴을 때 나머지와 같고,y축은 K값을 M으로 나눴을 때 몫과 같다.따라서 입력 받은 후, 나머지와 몫을 계산한 값을 출력한다.코드N, M, K = input().split(" ")N = int(N)M = int(M)K = int(K)n = K//Mm = K%Mprint(n,m)
https://www.acmicpc.net/problem/2511문제풀이a = list(map(int,input().split()))b = list(map(int,input().split()))score=[0,0]str ="D"for i in range(10): if a[i]>b[i]: score[0]+=3 str = "A" elif a[i]score[1]: print('A')elif score[1]>score[0]: print('B')else: print(str)설명1. 점수가 동점이어도 마지막 승자가 승리한다. 즉 비기는 경우는 모든 판이 무승부인 경우2. 마지막에 이긴 사람이 누구인지를 str에 초기화 시킨다. 이때 처음에 "D"로 무승부인 경우를..
문제https://www.acmicpc.net/problem/1152영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.입력첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.출력첫째 줄에 단어의 개수를 출력한다.풀이여태까지 우리가 배운 내용을 결합한 간단한 문제이다.문장을 공백을 기준으로 각각 나누어 리스트의 형식으로 저장한 뒤,리스트의 길이를 출력하면 된다.이를 잘 사용하면 한 ..
https://www.acmicpc.net/problem/10773문제문제풀이정수를 K번 입력받는다. K번 정수를 입력받는 동안 정수가 "0"일 경우에는 pop()을 이용해서 정수를 저장한 리스트의 가장 마지막 값을 지운다. 정수가 "0"이 아닌 경우에는 append()를 이용해서 정수를 저장한 리스트에 값을 추가한다.sum()을 이용해서 정수를 저장한 리스트에 있는 원소들의 합을 출력한다.소스코드K = int(input())nList = []for i in range(K): n = int(input()) if n == 0: nList.pop() else: nList.append(n)print(sum(nList))
문제 & 링크https://www.acmicpc.net/problem/11652 풀이!! 범위를 고려하여 long long int 자료형을 사용하여야 함 !! 1. map 자료구조를 사용하여 입력받을 카드의 숫자를 키, 해당 카드가 나온 횟수를 값으로 가지도록 한다. * map 자료구조의 특징으로는 키와 값을 쌍으로 가진다는 것, 레드-블랙 트리(균형 이진 트리)를 사용하여 키를 오름차순으로 정렬하여 관리한다는 것, 중복 키를 허용하지 않는다는 것 등이 있다.2. 입력받은 숫자를 map 자료구조에 삽입하고 해당 키와 쌍으로 이루어진 값을 1 증가시킨다.3. auto를 이용해서 map을 순회한 후, 최빈값을 찾아낸다.* auto는 변수의 타입을 자동으로 추론하여 선언할 수 있게 해주는 기능으로, 이 문..
문제 & 링크https://www.acmicpc.net/problem/1673 풀이!! 치킨 쿠폰과 도장을 잘 구분해야 함 !!도장 k개 -> 치킨 쿠폰 1개 -> 치킨 한 마리 주문 -> 도장 1 1. 몇 줄을 입력받을지 모르기에 EOF (End Of File) 조건을 이용하여 while문을 만들고 입력받는다. 입력을 종료하면 cin 객체의 상태가 false가 되며 반복문을 탈출한다.2. ans(정답), stamp(도장), coupon(쿠폰)을 각각 0, 0, n으로 초기화한다.3. 쿠폰의 개수만큼 정답 및 도장의 개수를 늘린다. (이때 쿠폰은 모두 사용)4. 도장을 k로 나누어 해당 몫 만큼 쿠폰을 생성하고, 나머지 개수를 저장한다.5. 3 - 4의 과정을 쿠폰이 0개가 될 때 까지 반복한다. 코드..