목록coding test (10)
호기심 많은 분석가

11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net import sys n = int(sys.stdin.readline().rstrip()) result = set() for _ in range(n) : com = sys.stdin.readline().split() if len(com)==1 : if com[0] == 'all' : result = set([k for k in range(1, 21)]) else : result = set() else : cd, x = com[0], int(com[1]) if cd == 'add' : result.ad..

9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net def isVPS(data) : while True : data = "".join(data) if '()' not in data : break data = data.split('()') if len(data) : print('NO') else : print('YES') import sys n = int(input()) for _ in range(n) : isVPS(sys.stdin.readline().strip()) 풀이✒️ 우리는..

10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net import sys from collections import Counter n = sys.stdin.readline().strip() arr1 = sys.stdin.readline().split() m = sys.stdin.readline().strip() arr2 = sys.stdin.readline().split() ct = Counter(arr1) print(' '.join(f'{ct[i]}' for i in arr2)) ..

15881번: Pen Pineapple Apple Pen 여러 개의 사과, 파인애플, 그리고 펜이 일렬로 세워져 있다. 이 물건들의 순서를 바꾸지 않고 옆에 있는 물건끼리 연결했을 때, 펜-파인애플-애플-펜을 몇 개나 만들 수 있을지 세어보자. 단, 펜, www.acmicpc.net import sys n = int(sys.stdin.readline().strip()) arr = sys.stdin.readline().strip() ck = [1]*len(arr) result = 0 for i in range(len(arr)-3) : if arr[i:4+i] == 'pPAp' : if sum(ck[i:4+i])== 4 : result += 1 ck[i], ck[i+3] = 0, 0 print(result)..

1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net import sys def is_prime(x) : import math if x < 2 : return False for i in range(2, int(math.sqrt(x))+1): if x%i == 0 : return False return True n = int(sys.stdin.readline().strip()) arr = list(map(int, sys.stdin.readline().split())) result = 0 for i in arr : if is_prime(i) : result +=1 print(result..

2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net import sys import math n, m = map(int, sys.stdin.readline().split()) great = math.gcd(n, m) print(great) print(n*m//great) 이번 문제도 크게 어렵지 않다. 하지만 앞의 combination 찾는 문제처럼 math 라이브러리 안에 lcm이라는 최소공배수를 구해주는 method가 있음에도 불구하고 런타임 에러가 발생한다. 몇 개의 method는 백준에서 사용하지 못하게 막아둔 듯하다. 그래서 $ 최소공배수는 = \frac{두수의 곱}{최..

1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 여러 가지를 배운 문제였다. 우선 코드를 먼저 소개하고 설명하겠다. def get_result(data) : result = 0 for t in range(8) : for q in range(8) : if (t+q)%2 == 0 and data[t][q] != data[0][0] : result += 1 if (t+q)%2 == 1 and data[t][q] == data[0][0] : result += 1 return result def color_ch..

포스팅 개요 SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. 그중 SUM, MAX, MIN 파트의 문제들을 기록해두었습니다. 그 전 문제들은 2021.05.06 - [Coding Test & Algorithm] - [SQL] 프로그래머스 Coding_Test SELECT (2) 포스팅에서 확인할 수 있습니다. 포스팅 본문 아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다. TABLE 설명 1. 최댓값 구하기 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. SELECT MAX(AI.DATETIME) FROM ANIMAL_INS AS AI; SELECT AI.DATETIME FROM ANIMAL_INS AS AI ORD..

포스팅 개요 SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. 그중 SELECT 파트의 문제들을 모아두었다. 2021.05.06 - [Coding Test & Algorithm] - [SQL] 프로그래머스 Coding_Test SELECT (1) 포스팅에 이어 다음 문제들도 다뤄보겠습니다. 포스팅 본문 아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다. TABLE 설명 5. 동물의 아이디와 이름 동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다. SELECT AI.ANIMAL_ID, AI.NAME FROM ANIMAL_INS AS AI ORDE..

포스팅 개요 SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. SELECT 파트의 문제들 중 앞 파트를 기록해두었습니다. 포스팅 본문 아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다. TABLE 설명 1. 모든 레코드 조회하기 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다. SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_INS.ANIMAL_ID; 모든 레코드를 불러오기 위해 * 를 사용했고, ANIMAL_ID로 정렬해주기 위해 ORDER BY를 사용함 2. 역순 정렬하기 동물 보호소에 들어온 모든 동물의 이름과 보호 시작..