목록Algorithm (111)
S E P H ' S
코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr def solution(absolutes, signs): answer = 0 for i in range(len(absolutes)): if signs[i]: answer += absolutes[i] elif signs[i] == False: answer -= absolutes[i] return answer
코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 처음 생각한 아이디어는 d에서 몇가지를 뽑아서 budget을 넘지 않으면서 가장 큰 값을 찾는 것을 생각했다. 하지만 그렇게 된다면 모든 경우의 수를 생각해야하고 로직이 복잡해질 것 같다는 생각을 했다. 그래서 생각한 아이디어는 다음과 같다. 1. d를 오름차순으로 정렬하여 작은 값부터 budget에서 빼나가면서 정답을 체크한다. 2. 정렬한 d의 첫 값이 budget보다 크면 지원할 부서는 없다. def solution(d, budget): answer = 0 d..
코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 처음 문제를 봤을 때는 지문이 길어서 어렵게 느껴졌지만 지문에서 주어진 1~7단계 까지의 요구사항을 차례차례 해결해나가는 문제이다. 문자열을 다루는 데 필요한 내장함수나 아이디어를 종합적으로 생각하기에 아주 좋은 문제인 것 같다. def solution(new_id): # 1 new_id = new_id.lower() # 2 answer = '' for word in new_id: if word.isalnum() or word in '-_.': answe..
코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 요점 이 문제에서 키포인트는 세 가지가 있다. 문제에서 이 세 가지의 키포인트만 잘 찾아낸다면 쉽게 풀 수 있다. 첫 번째로는 체육복을 도난당한 학생, 여벌의 체육복을 가져온 학생 수는 중복되는 번호가 없고, 두 번째로는 여벌 체육복을 가져온 학생도 체육복을 도난당했을 수 있다는 점, 마지막 세 번째로는 여벌 체육복을 가져온 학생이 자신 기준 왼쪽의 학생부터 주어야 한다는 점이다. 첫 번째 경우로는 lost[2,2,4], reserve[1,3,3,5]와 같은 경우..