썸네일 [PYTHON] 10101 삼각형 외우기 https://www.acmicpc.net/problem/10101 10101번: 삼각형 외우기 문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다. www.acmicpc.net 문제 풀이 set의 특징인 유일한 값의 모임을 이용하여 문제를 풀었다. 입력받은 세 각의 유일한 값이 60이면 Equilateral 출력한다. 입력받은 세 각의 유일한 값이 2개이고, 합이 180이면 Isosceles 출력한다. 입력받은 세 각의 유일한 값이 3개이고, 합이 180이면 Scalene 출력한다. 나머지 조건들은 Error를 출력한다. solution - 시도 - 성공 import sys angles = [int(sys.stdin.readline().strip..
썸네일 [PYTHON] 9012 괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 풀이 stack을 이용하여 문제를 풀었다. 스택 안에 괄호를 하나씩 넣어 준다. 만약 가장 최신으로 들어간 데이터가 '('이고 들어갈 데이터가 ')'라면 스택의 최신으로 들어간 데이터 '('을 제거한다. solution - 성공 import sys T = int(sys.stdin.readline().strip()) for _ in range(T): data = ..
썸네일 [PYTHON] 2720 세탁소 사장 동혁 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 풀이 거스름돈에서 큰 동전 단위 기준으로 나누고 몫을 저장하고 나머지 값은 다시 거스름돈으로 계산한다. 거스름돈에 가장 큰 동전 단위로 나눠 몫을 저장한다. 가장 큰 동전 단위로 나눈 나머지 값이 다시 거스름돈이 되고 2번째로 큰 동전 단위로 나눠 몫을 저장하고 나머지 값이 거스름돈이 된다. 마지막 동전 단위까지 위 과정을 반복하고 저장한 몫을 출력한다. import sys T = int(sys.stdin.readline().strip()) coin_unit =..
썸네일 [PYTHON] 2161 카드1 https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 풀이 1부터 N까지 리스트로 만든다. 남은 카드가 한 장일 될때까지 아래의 과정을 반복한다. 가장 위에 있는 카드를 제거(pop(0))하고 그 값을 출력한다. 그 다음 가장 위에 있는 카드를 카드 뒷장에 넣는다. 가장 위에 있는 카드인 값(pop(0))을 카드 리스트에 append하여 넣어줌 import sys N = int(sys.stdin.readline().strip()) card_li..
썸네일 [PYTHON] 1453 피시방 알바 - set으로 중복제거/스택 https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net solution - 전체 학생 수에 중복된 개수 빼기 import sys N = int(sys.stdin.readline().strip()) numbers = sys.stdin.readline().strip().split() print(len(numbers) - len(set(numbers))) solution - 스택으로 풀기 import sys N = int(sys.stdin.readline().strip()) numbers = ..
썸네일 [PYTHON] 2675 문자열 반복 - 문자열 반복하기 * https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net import sys t = int(sys.stdin.readline().strip()) for _ in range(t): R,str = sys.stdin.readline().strip().split() result = '' # result 기본값 설정/ 한 줄의 문자열이 끝나면 다시 비워주고 그 다음 문자열의 result값을 받는다. for s in str: result += s*int(..
썸네일 [PYTHON] 1316 그룹단어 체커 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net solution import sys N = int(sys.stdin.readline().strip()) # 그룹 단어이면 카운팅을 저장하는 변수 생성 total = 0 for _ in range(N): word = sys.stdin.readline().strip() # 'aaabbca' # 오른쪽 요소의 문자를 추가하기때문에 제일 왼쪽 요소인 첫 번째 요소를 미리 ..
썸네일 [PYTHON] 11047 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제 풀이 동전을 큰 순서대로 정렬한 후 하나씩 순회한다. K가 0일 될때까지 아래의 과정을 반복한다. K를 나눈 몫은 동전의 개수로 누적해서 더해주고 K를 나눈 몫의 나머지는 다시 K가 되어 반복한다. 반복이 끝나면 동전의 개수를 출력한다. solution import sys N,K = map(int, sys.stdin.readli..
썸네일 [PYTHON] 10828 스택 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 풀이 빈 배열을 만들어 입력 받으며 하는 실행들을 누적 실행한다. solution - 실패 def push(stack,num): stack.append(num) return stack def pop(stack) : if stack: stack.pop(0) print(stack) else: print(-1) def size(stack): print(len(stack)) def..
썸네일 [PYTHON] 2566 최댓값 https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 문제풀이 하나씩 순회하면서 최댓값을 찾는다. 처음 최댓값을 0으로 설정하고 최초 최댓값보다 순회한 숫자가 더 크면 순회한 숫자를 최댓값으로 업데이트한다. solution - 실패 import sys matrix = [list(map(int, sys.stdin.readline().strip().split())) for _ in range(9)] max_number = 0 row = 0 column = 0 for i i..
썸네일 [PYTHON] 8958 OX 퀴즈 - 등차 수열 / for https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 문제 풀이 'O이 연속적으로 나올때 1씩 증가하여 누적합을 해줌. solution - 등차수열의 합 import sys t = int(sys.stdin.readline().strip()) for _ in range(t): OX_str = sys.stdin.readline().strip().split('X') sum = 0 for O_list in OX_str: sum += (l..
썸네일 [PYTHON] 1546 평균 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 문제 풀이 공백으로 구분하여 점수들을 리스트에 저장한다. 점수 중 최댓값을 변수에 저장한다. map을 활용하여 입력 값 리스트에 요소를 하나씩 최댓값으로 나누고 100을 곱한 값을 저장한다. 위 리스트의 합계를 계산하고 과목의 개수 N개로 나눠 평균값을 출력한다. solution import sys t = int(sys.stdin.readline().strip()) Nber_list = li..