https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 완전 탐색이 가능한가? 주어진 숫자의 개수는 최대 20개이다. 모든 원소를 더하거나 빼는 경우를 고려할 때, 최악의 경우에도 2^20번만 연산하면 된다. 이는 10^6 정도인데, 이 정도는 시간 초과 없이 계산할 수 있다. 모든 숫자를 더하고, 빼는 과정을 재귀로 돌리자 재귀 함수의 종료 조건은 index가 numbers 리스트의 길이 이상일 때이다. 만약 종료 조건에서 지금까지 재귀 ..
https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 key가 알파벳이고 value가 색인 번호인 기본 사전을 생성하자. msg의 글자를 순회할 때 for문이 아닌 while문을 사용하자. 예를 들어 msg가 "...TOBEOR..."이고 현재 입력 w가 TOB일 때, 다음에 접근해야 할 문자는 T 다음 문자인 O가 아니라, TOB 덩어리 다음인 E이다. 즉, msg 내 문자를 하나씩 순회하지 않기 때문에 TOB의 T 인덱스가 i일 ..
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/17683# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근 방식 문자열을 더욱 쉽게 다루기 위해 C#, D#, F#, G#, A#은 c, d, f, g, a로 변환하자. 문자열에 문정 문자/문자열이 포함되어 있는지 확인하는 in 연산자를 사용하기 위해 # 붙은 음을 소문자로 바꾼다. 만약 소문자로 바꾸지 않고 그대로 in 연산자를 사용한다면, "ABC#D"에서 "ABC"를 찾을 때 문제가 발생한다. 실제 ABC#D에서는 C#이기 때문에 ABC..