Algorithm101 [BOJ] 1918 | 후위 표기식 1918 | 후위 표기식 https://www.acmicpc.net/problem/1918 작성 코드 express = input() stack = [] answer = [] for exp in express: if exp not in ['+', '-', '*', '/', '(', ')']: answer.append(exp) elif exp == '(': stack.append(exp) elif exp == ')': while stack[-1] != '(': answer += stack.pop() stack.pop() elif exp in ['+', '-']: while stack and (stack[-1] in ['*', '/', '-', '+']): answer += stack.pop() stack... 2022. 1. 21. [BOJ] 2846 | 오르막길 2846 | 오르막길 https://www.acmicpc.net/problem/2846 작성 코드 N = int(input()) nums = list(map(int, input().split())) temp = [] heights = [] for num in nums: if temp and (num nums[i-1]: diff += nums[i] - nums[i-1] else: diff = 0 if diff > heights: heights = diff print(heights) temp 필요 없음, 그냥 바로 전 값이랑 계산 heigts 내 max 값 계산 없이 비교하여 바꿔줌 학습 max 값 단순 비교만 한다면 변수에 임시 max 값 지정해주고 갱신하는 식으로 전 값과 비교해야 한다면 index 번호.. 2022. 1. 19. [프로그래머스] 42579 | 베스트앨범 42579 | 베스트앨범 Level 3 https://programmers.co.kr/learn/courses/30/lessons/42579 작성 코드 from collections import defaultdict def solution(genres, plays): answer = [] genre_play = defaultdict(list) genre_play_sum = defaultdict(int) for idx, genre in enumerate(genres): genre_play[genre].append([idx, plays[idx]]) genre_play_sum[genre] += plays[idx] sorted_genre_play_sum = sorted(genre_play_sum.items(),.. 2022. 1. 18. [프로그래머스] 42578 | 위장 42578 | 위장 Level 2 https://programmers.co.kr/learn/courses/30/lessons/42578 작성 코드 from collections import defaultdict def solution(clothes): answer = 0 dict = defaultdict(int) for cloth, kind in clothes: dict[kind] += 1 cnts = list(dict.values()) max_value = max(cnts) final_cnts = 0 for i in range(1, max_value + 1): temp_cnts = 1 for cnt in cnts: if cnt >= i: temp_cnts *= cnt else: temp_cnts *= .. 2022. 1. 17. [BOJ] 1929 | 소수 구하기 1929 | 소수 구하기 https://www.acmicpc.net/problem/1929 작성 코드 import math N, M = map(int, input().split()) for n in range(N, M+1): dec = True if n == 1: continue for i in range(2, int(math.sqrt(n))+1): if n%i == 0: dec = False break if dec: print(n) 범위를 제곱근으로 지정함으로써 시간 초과 해결 이상 코드 에라토스테네스의 체 m, n = map(int, input().split()) n += 1 prime = [True] * n for i in range(2, int(n**0.5)+1): if prime[i]: for .. 2022. 1. 13. [스택, 큐] 유효한 괄호 20 | Valid Parentheses https://leetcode.com/problems/valid-parentheses/ 작성 코드 class Solution: def isValid(self, s: str) -> bool: s = list(s) stack = [] parenthneses = {'{': '}', '(': ')', '[': ']'} while s: stack.append(s.pop()) while len(stack) >= 2 and stack[-1] in parenthneses and stack[-2] == parenthneses[stack[-1]]: stack.pop() stack.pop() return False if stack else True list에 있는 문자를 stack에.. 2022. 1. 12. 이전 1 ··· 12 13 14 15 16 17 다음 반응형