본문 바로가기

🔅코딩테스트 공부🔅213

[백준] 22233번 가희와 키워드(python) https://www.acmicpc.net/problem/22233 22233번: 가희와 키워드 1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을 www.acmicpc.net 1. 내가 작성한 코드 set 을 이용해서 문제를 해결하려고 했는데 시간초과로 자꾸 실패해서 딕셔너리로 해결했다. import sys input = sys.stdin.readline n,m = map(int, input().split()) keyword = {} for i in range(n): keyword[input().rstrip()] = 1 for i in.. 2023. 2. 16.
[프로그래머스] Level1 콜라 문제(python) https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(a, b, n): result = 0 #받을 수 있는 콜라 수 while n>=a: result += (n//a) * b #마트에서 받은 콜라 n = (n - (n//a) * a) + (n//a) * b #마트에 주고 남은 콜라 + 마트에서 받은 콜라 return result n값이 변하기 때문에, result 를 구하는 코드가 n을 갱신하는 코드보.. 2023. 2. 15.
[프로그래머스] Level1 푸드 파이트 대회(python) https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(food): result = [] for i in range(1,len(food)): for j in range(food[i]//2): result.append(str(i)) result.append("0") for i in range(len(food)-1,0,-1): for j in range(food[i]//2): result.append(str.. 2023. 2. 15.
[프로그래머스] Level1 햄버거 만들기(python) https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(ingredient): stack = [] result = 0 for i in ingredient: stack.append(i) if stack[-4:] == [1,2,3,1]: result+=1 del stack[-4:] return result 1. stack을 이용하면 시간초과 없이 문제를 해결할 수 있다. 2. slicing은 range 범위.. 2023. 2. 15.
[백준] 4949번 균형잡힌 세상(python) https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 1. 내가 작성한 코드 while True: arr = list(input()) if arr == ["."]: #.만나면 종료 break stack = [] for i in arr: if i == "[" or i == "(": stack.append(i) elif i == "]": if len(stack) != 0 and stack[-1] == "[": stack.pop() .. 2023. 2. 15.
[프로그래머스] Level1 숫자 짝꿍(python) https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 from collections import Counter def solution(x, y): answer = '' x_dic = Counter(x) y_dic = Counter(y) d_dic = x_dic - y_dic #x와 y의 차이 result_dic = x_dic - d_dic #x에서 차이를 빼면 공통인 것이 나옴 if len(result_dic) == 0: #.. 2023. 2. 14.
[백준] 2630번 색종이 만들기(python) https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 1. 내가 작성한 코드 n = int(input()) #한 변의 길이 paper = [list(map(int, input().split())) for _ in range(n)] result = [] def cut(x,y,n): color = paper[x][y] #첫 paper의 색 for i in range(x, x+n): for j in range(y,y+n): if.. 2023. 2. 14.
[프로그래머스] Level1 크레인 인형뽑기 게임(python) https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(board, moves): cnt = 0 #사라진 인형의 개수 stack = [] #바구니 for k in moves: for i in range(0,len(board)): if board[i][k-1] != 0: stack.append(board[i].pop(k-1)) board[i].insert(k-1,0) break if len(stack) >=.. 2023. 2. 14.
[알고리즘] 분할과 정복 + 문제풀이 1. 분할정복법(Divide Conquer)이란? 큰 문제를 나눌 수 없을 때까지 작은 문제로 분할해 문제의 답을 얻는 것 Divide => Conquer => Combine 재귀적인 분할을 이용하며, 알고리즘 수행시간은 점화식으로 표현 가능 ※ 재귀할 경우 바닥조건 정해주는 거 잊지 말기 2. 예시1) 거듭제곱 계산하기 2.1 선형 재귀 호출을 하는 경우 a = int(input()) #밑 n = int(input()) #지수 def power(a,n): if n == 1: return a else: return a * power(a, n-1) print(power(a,n) 2.2 선형 이중 재귀 호출을 하는 경우 a = int(input()) #밑 n = int(input()) #지수 def powe.. 2023. 2. 13.