본문 바로가기

파이썬127

[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.
[Python] 프로그래머스 : 신규 아이디 추천 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제 풀이 문제에서 요구하는대로 그대로 따라 하면 된다. 정규식을 이용해서 푸는게 깔끔해서 정규식을 이용했다. 느낀 점 파이썬의 큰 매력이 정규식에 있는 것 같다. 코드가 아주 직관적이고 예뻐졌다. 6단계에서 글자의 길이가 16 이상일 때 조건이 있는데 뭐가 되었든 처음부터 15글자를 가져오면 되니 조건을 줄여서 코드를 간략하게 바꾸었다. 파이썬이 아직 .. 2022. 6. 19.
[Python] 백준 1026번 : 보물 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제 풀이 간단한 그리디 알고리즘이었다. 두 번째 배열은 재배열하지 말라고 했지만 문제에서 요구하는 것은 단순히 더한 최솟값! 따라서 하나는 내림차순 하나는 올림차순으로 정렬해 곱한 값을 더해준 것이 최솟값이다. 느낀 점 정렬 문제 풀어보려고 했다가 빠르게 풀었다! 코드 num = int(input()) a = list(map(int, input().split())) b = list(map.. 2022. 6. 18.