
https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 모든 시간 데이터를 분 단위로 환산하자. 기존 데이터는 시와 분으로 나뉘어져 있고, 심지어 문자열이다. 경험에 의하면 이런 상황에서는 시간을 분 단위로 환산하여 계산하는 것이 수월하였다. 셔틀 버스 운영 시 탑승 크루의 리스트를 만들자. 이를 위해 아래와 같은 작업이 필요하다. 버스 운영 시간표를 만들자. (단, 이때 시간은 모두 분 단위로 표시한다.) 크루가 대기열에 도착하는 시..

https://school.programmers.co.kr/learn/courses/30/lessons/92335# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 n을 k진수로 바꾸면서 문자열로 반환하자. 위 그림은 10진수 n = 532를 3진수로 바꾸는 과정이다. 532를 3으로 나눈 나머지들이 모여서 3진수로 표현된다. 따라서 n을 k진수로 바꾸는 과정은 n이 0보다 클 동안 (1) n을 k로 나눈 나머지를 저장하고 (2) n을 k로 나누는 작업을 반복하는 것이다. 단, 이때 효율성을 위하여 k가 10진수라면 n을 문자열로 변환하여 ..

https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 lux, luy, rdx, rdy는 각각 가장 위쪽, 가장 왼쪽, 가장 아래쪽, 가장 오른쪽에 있는 좌표이다. 바탕화면 wallpaper 리스트를 행별로 순회하면서 lux, luy, rdx, rdy를 초기화하면 된다. 좀 더 자세히 말하면 다음과 같다. lux는 #가 존재하는 첫 번째 행이다. 따라서 처음 lux는 -1로 초기화하고, #가 존재하는 첫 행을 만나면 해당 행으로 l..

https://school.programmers.co.kr/learn/courses/30/lessons/17683# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 문자열을 더욱 쉽게 다루기 위해 C#, D#, F#, G#, A#은 c, d, f, g, a로 변환하자. 문자열에 문정 문자/문자열이 포함되어 있는지 확인하는 in 연산자를 사용하기 위해 # 붙은 음을 소문자로 바꾼다. 만약 소문자로 바꾸지 않고 그대로 in 연산자를 사용한다면, "ABC#D"에서 "ABC"를 찾을 때 문제가 발생한다. 실제 ABC#D에서는 C#이기 때문에 ABC..

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 각 큐의 합이 더 작은 큐에 원소를 추가하는 작업을 반복한다. q1과 q2가 있을 때 각 큐의 원소 합을 같게 만들어가는 과정은 위와 같다. q1과 q2 각 합을 비교하여, 합이 더 작은 쪽에 큰 큐의 첫 번째 원소를 더해주는 작업이 반복된다. 그러다가 두 큐의 원소 합이 똑같아지면, 반복 작업을 종료하면 된다. 위 그림의 경우 2번의 작업으로 각 큐의 원소 합이 같아졌다. 각 ..

https://school.programmers.co.kr/learn/courses/30/lessons/150370# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 년, 월, 일을 하나씩 계산하자. 기본적으로 개인정보 보관 가능일은 (기존 일 - 1)일까지이다. 만약 이때 기존 일이 1일이라면, 보관 가능일은 28일이 되는 대신 기존 월에서 -1을 해주어야 한다. Ex) 2021.07.01, 12달 => 2022.06.28 그 다음엔 월을 계산한다. 위와 같이 수집 일자가 2021.11.02이고, 유효기간이 30달인 케이스로 설명하겠다. ..

https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 암호화된 두 지도가 겹쳐져야 비밀 지도를 얻을 수 있으므로, for문의 zip( ) 함수를 사용하자. for문에서 zip( ) 함수를 사용하면 서로 다른 2개 이상의 리스트 같은 iterable 객체를 순회할 수 있기 때문이다. 10진수를 2진수로 바꾸기 위해 bin( ) 함수를 사용하자. 이때 총 비트 수를 n 비트로 맞추기 위해 필요한 개수만큼 '0'을 2진수 앞에 추가한다. ..

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의 뒤쪽에 위치한다. 이 말은 곧 가장 예전에 사용된 ..