https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net [풀이] import sys from collections import deque while True: data = input() cnt = 0 if data == '.': break stack = deque() for i in data: if i in ['(', '[']: stack.append(i) if i in [')', ']']: cnt += 1 if len(stack..
https://school.programmers.co.kr/learn/courses/30/lessons/133026 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDER FROM FIRST_HALF AS F INNER JOIN ICECREAM_INFO AS I ON F.FLAVOR = I.FLAVOR GROUP BY I.INGREDIENT_TYPE; ICECREAM_INFO와 INNER JOIN을 한 후, INGREDIENT_TYPE으로 GROUP BY합..
https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] # deque로 구현 # queue를 bridge_length만큼 만든 뒤 # queue의 총합이 weight보다 낮을 경우 # truck_weights를 하나씩 다리 위로 올린다(queue에 올린다) # 올라갔을 때는 항상 하나씩 작아지면서 맨 뒤에껄 0으로 업데이트해야함 # popleft를 하고, 뒤에 append로 쌓아야함 # 하지만 popleft할 때 append는 항상 0으로만 ..
https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 처음풀이 def solution(s): while True: if '()' in s: s = s.replace('()', '') else: break if s == '': return True else : return False 시간 복잡도 생각안하고 가장 간단히 짜본 코드 효율성 문제에서 걸렸다. 일단 문자열 s에서 '()'를 찾아서 제거하는 과정을 반복하는데, 이 때 문자열을 제거하고..
https://school.programmers.co.kr/learn/courses/30/lessons/77487 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] SELECT * FROM PLACES WHERE HOST_ID IN (SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(*) >= 2); 서브쿼리로 간단하게 풀 수 있는 문제였습니다. HOST_ID를 GROUP BY 한 것으로 COUNT를 세고, COUNT가 2보다 큰 HOST_ID를 가져와서 HOST_ID가 해당 튜플 안에 존재하는 걸..
https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] def solution(clothes): vd = dict() # 초기화 for clothe in clothes: vd[clothe[1]] = 0 # 딕셔너리 생성 for clothe in clothes: vd[clothe[1]] += 1 # 각 리스트별 가짓수 곱하기, 안입는 경우 추가(+ 1) first = 1 for i in vd.values(): first *= (i + 1) re..
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 처음 풀이 def solution(phone_book): phone_book.sort() for idx, word in enumerate(phone_book): for word2 in phone_book[idx + 1:]: if word == word2[: len(word)]: return False return True phone_book을 sorting 한 뒤(문자열 길이) 짧은 문자..
https://school.programmers.co.kr/learn/courses/30/lessons/144854 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') as PUBLISHED_DATE FROM BOOK INNER JOIN AUTHOR ON BOOK.CATEGORY = '경제' and BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID ORDER BY PUBLISHED_DATE; WHERE로 풀어도 상관 없..