본문 바로가기

분류 전체보기411

[Python] 프로그래머스 : 없는 숫자 더하기 https://programmers.co.kr/learn/courses/30/lessons/86051 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. programmers.co.kr 문제 풀이 없는 숫자를 찾는 게 아니라 없는 숫자의 합을 구하면 된다. 0부터 9까지 더한 값에서 numbers를 더한 값을 빼면 끝. 느낀 점 코드 def solution(numbers): answer = sum([0,1,2,3,4,5,6,7,8,9]) answer -= sum(numbers) return ans.. 2022. 6. 22.
[Python] 백준 10815번 : 숫자 카드 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 풀이 기본적인 이분 탐색 문제이다. 값을 입력받고 출력만 잘하면 된다. 느낀 점 파이썬이 아니였다면 입력 값의 범위 때문에 다소 어려웠을 것 같다. 파이썬 최고다... 코드 from sys import stdin def binary(arr, left, right, key): while left arr[mid]: left = mid + 1 elif key < ar.. 2022. 6. 22.
[Python] 백준 2108번 : 통계학 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제 풀이 수학적인 능력을 물어보는 구현 문제이다. 문제에서 물어보는 대로 따라가면 된다. 산술평균 : n개의 수를 합 합해서 n으로 나눈 뒤 반올림하면 된다. statistics 라이브러리에 있는 mean() 함수를 써도 상관은 없는데 오히려 메모리와 시간을 잡아먹는다. 중앙값 : n이 무조건 홀수로 주어지기 때문에 (n+1)/2 -1 이 무조건 중앙값이다! 최빈값 : 빈도를 따지기 위해서 딕셔너리를 사용했다.. 2022. 6. 21.
[Python] 백준 14501번 : 퇴사 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 풀이 전형적인 DP 문제이다. DP 문제를 해결할 때에는 점화식이 중요하다. 이 문제는 점화식 자체는 단순하다. DP[i]는 i 번째 날에 최대 금액이다. 점화식은 일을 받았을 때, 일을 해결한 날의 DP 값과 받기 전 날 DP 값과 받은 일의 금액의 합을 비교해야 한다. 이 문제는 몇 가지 센스를 요구한다고 생각하는데 첫 번째는 DP 리스트의 크기이다. 최대 걸리는 기간은 5일이므로 DP는 n+5 크기를 가져야 한다. 두 번째는 상담 처리에 대한 것이다. n일에 3일이 걸리는 일을 시작했을 때, n+3일째에 새로운 일을 받을 .. 2022. 6. 21.
[Python] 프로그래머스 : 크레인 인형뽑기 게임 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제 풀이 간단한 구현 문제였다. 이동할 곳 위에서부터 차례대로 확인한다. 0일 때는 빈 공간이므로 continue를 이용해 다음으로 넘어간다. 값이 존재할 때 공간을 빈칸으로 바꾸어주고 넘어간다. 스택의 top과 board의 값과 비교해서 지우거나 쌓아준다. 느낀 점 어렵지 않은 문제였다! 이런 구현 문제는 재밌는 것 같다. 코드 def solution(board, moves): ans.. 2022. 6. 21.
[Python] 프로그래머스 : 숫자 문자열과 영단어 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 문제 풀이 특정 영단어를 숫자로 바꾸어 주기만 하면 된다. 이때 문자열 함수 replace()를 쓰거나, re.sub()를 써도 된다. 리턴 값을 정수로 변환하면서 마무리 해준다. 느낀 점 신규 아이디 추천을 풀면서 정규식과 문자열을 좀 정리했더니 쉽게 풀었다. 코드 numbers = ['zero', 'one', 'two', 'three', 'four.. 2022. 6. 21.