https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각보다 쉽다고 만만하게 봤지만 런타임 에러 잔뜩 마주한 문제였다. 첫번째 시도 def solution(s): answer = [] check = s.split(' ') for text in check: if text[0].isdigit(): text.lower() answer.append(text) else: answer.append(text[0].upper() + text[1:].lower()..
https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제출한 코드 def solution(players, callings): answer = [] for i in range(len(callings)): call_score = players.index(callings[i]) players.pop(call_score) new_score = call_score-1 players.insert(new_score, callings[i]) answer = pl..
https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 : 오랜만에 풀었더니.. 알고리즘 사고(?라고 해야 하나.. 머리가 그대로 굳어버렸다... (럴수럴수,,, 해시를 이용하기 위해 딕셔너리를 야심차게 만들었지만 수학적 지식이 부족하여 결국 다른 사람들의 풀이를 보게 되었다.. 새로 알게 된 점 : 경우의 수를 구할 때 A의 종류가 n개, B의 종류가 m개 일 때 모든 경우의 수는 (n+1)(m+1)으로 구할..
드디어 프로그래머스 레벨 1의 모든 문제를 다 풀었다!! 뿌듯- - 비밀지도 - https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 이진수로 바꿀 때 bin 함수를 사용하였다. 처음엔 2개의 리스트를 순서대로 bin 함수를 사용하여 이진수를 바꾼 후 한번 더 for문을 사용하여 1과 0을 구분하려고 했다. 하지만 이중 for문은 너무 비효율적인 것 같아 다른 방법을 찾아 보다가 bin(i|j)라는 방법을 ..
https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 가로가 세로보다 작은 경우에는 회전을 시켜서 보관을 할 수 있기 때문에 가로와 세로의 값을 변경하도록 했다. 이 과정이 for문 안에서 실행이 되었고 이 때 가로와 세로의 값을 변경 하면 기존 값에 덧씌워지기 때문에 제대로 변경이 되지 않는다. 때문에 똑같은 값을 가진 sizes를 복사한 리스트가 필요했다. 여기서 슬라이싱으로 복사([:])를 하니 for문 안에서 ..
https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 처음 문제를 읽고 이해하는데 한참 걸렸다... 입출력 예시 설명을 보고 겨우 이해를 했고, 결론은 실패율을 구하는 것이 아니라 실패율이 가장 높은 스테이지부터 순서대로 출력을 해야하는 문제였다. 정답 코드 def solution(N, stages): answer = [] all_num = len(stages) num = {} for i in range(1, N+..
https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 10진수를 n진수로 바꾸는 코드만 알고 있다면 금방 풀 수 있는 문제이다. 10진수를 n진수로 바꾸는 코드 inv_three_str = '' while n >= 1 : n,b = divmod(n,3) inv_three_str += str(b) three_str = inv_three_str[::-1] while문을 통..
https://programmers.co.kr/learn/courses/30/lessons/59414 코딩테스트 연습 - DATETIME에서 DATE로 형 변환 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr datetime으로 된 날짜를 string으로 바꾸는 문제였고 파이썬과 비슷하게 '%Y-%m-%d'를 사용하여 변환을 할 수 있다. 정답 코드 SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-..
https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 굉장히 간단하게 풀 수 있는 문제인데 너무 어렵게 생각해서 시간 초과 왕창 맞았던 문제이다. 첫번째 시도 - 시간 초과 실패 from itertools import combinations as cb def solution(nums): answer = 0 result = [] for numb in cb(nums, int(len(nums)/2)) : result...
https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 처음에 문제를 보고 모든 경우의 수를 다 생각해야 하나 고민에 빠졌었다. 곰곰히 생각해보니 그럴 필요 없이 for문 하나만으로도 해결을 할 수 있을 것 같았다. 정답 풀이 def solution(d, budget): answer = 0 d = sorted(d) for i in range(len(d)) : if budget >= d[i] : budget -= d[i]..