https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 연산자 우선순위는 expression 문자열에 있는 연산자 간 순열로 표현하자. 예를 들어 expression이 "50*6-3*2"이라면 여기에는 '*', '-' 2개의 연산자가 존재한다. 그럼 이 2개의 연산자로 순열을 구하면 [ ('-', '*'), ('*', '-') ] 이러하다. 첫 번째는 -가 우선순위가 높을 때이고, 두 번째는 *이 우선순위가 높을 때를 나타내는 각각의 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 닉네임은 변경될 수 있으므로, 불변하는 아이디로 출력 메시지를 완성한 이후에 아이디를 닉네임으로 교체하자. 따라서 코드는 크게 (1) 아이디로 메시지를 생성하는 부분과 (2) 메시지 내 아이디를 닉네임으로 교체하는 부분으로 나뉜다. (2) 과정에서 아이디에 해당하는 닉네임을 찾을 수 있도록 key가 아이디이고, value가 닉네임인 users 딕셔너리를 생성할 필요가 있다. use..
https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 새 원소를 추가하면 맨 마지막 원소로 추가되는 cache 리스트를 사용하자. LRU 알고리즘은 캐시에 존재하는 페이지 중 가장 옛날에 사용된 페이지를 교체하는 페이지 알고리즘이다. cache 리스트에 append( )로 새로운 페이지를 추가하면, 현재 페이지가 마지막 인덱스로 추가된다. 즉, 최근에 사용한 페이지일수록 cache의 뒤쪽에 위치한다. 이 말은 곧 가장 예전에 사용된 ..
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 s를 각 집합을 원소로 갖는 리스트로 바꾸자. s가 "{ {2, 1}, {1}, {1, 3, 2} }"라는 문자열이라면, 이를 sets = [ {2, 1}, {1}, {1, 3, 2} ]처럼 실제 집합을 원소로 갖는 리스트로 변환함으로써 더욱 쉽게 문제를 풀 수 있을 것이라고 생각했다. sets 리스트를 각 집합의 길이를 기준으로 오름차순 정렬한다. 기존 튜플이 (1, 2, 3)이..