본문 바로가기

코딩테스트

(111)
[정렬] 프로그래머스 L1 '정수 내림차순으로 배치하기' (Python) https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr 1. 정수를 리스트로 바꿔 정렬하고 문자열로 바꾸고 다시 정수로 바꾼다. def solution(n): return int("".join(sorted(str(int(n)), reverse=True))) 1000000000 이상 자연수는 int로 바꿔줘야 함 복습 알고리즘
[기타] 프로그래머스 L1 '최소공약수와 최소공배수' (Python) https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 1. 공식을 이용하여 최대공약수를 구한다. 2. 최대공약수를 이용하여 최대공배수를 구한다. def gcd(a,b): while a!=0: t = b%a (b,a) = (a,t) return b def solution(n, m): answer = [] if m
[DFS] 릿코드 200 Medium 'Number of Islands' (Python) https://leetcode.com/problems/number-of-islands/ Number of Islands - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 상하좌우로 1이 연결되어 있으면 하나의 섬이라고 본다. 2. DFS 알고리즘으로 해결한다. class Solution: def numIslands(self, grid: List[List[str]]) -> int: answer = 0 q = [] dx = [0,0,-1,1] dy = [-1,..
[이분탐색] 릿코드 Medium 33 'Search in Rotated Sorted Array' (Python) https://leetcode.com/problems/search-in-rotated-sorted-array/ Search in Rotated Sorted Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. nums에서 target의 인덱스 값을 찾아라 2. target 값이 없으면 -1 class Solution: def search(self, nums: List[int], target: int) -> int: if target in nums: ..
[동적계획법] 릿코드 Medium 198 'House Robber' (Python) https://leetcode.com/problems/house-robber/ House Robber - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 더하는 숫자들이 이웃하지만 않으면 됨 2. 바로 직전의 돈과 두번째 전의 돈+현재 돈 중 큰 값을 구하면 됨 3. 집이 하나만 있을 수 있음 class Solution: def rob(self, nums: List[int]) -> int: answer = [] if len(nums)==1: return nu..
[동적계획법] 릿코드 Easy 70 'Climbing Stairs' (Python) https://leetcode.com/problems/climbing-stairs/ Climbing Stairs - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 세번째 계단부터는 앞의 두 계단의 경우의 수를 합한 값이 된다. class Solution: def climbStairs(self, n: int) -> int: answer = [] answer.append(1) answer.append(2) for i in range(2,n): answer.appen..
[비트연산] 릿코드 Easy 190 'Reverse Bits' (Python) https://leetcode.com/problems/reverse-bits/ Reverse Bits - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com n은 정수형으로 들어오기 때문에 binary로 바꿔줌. binary로 바꾸면 맨 앞에 0b가 붙으므로 제거해줌 2진수는 32bit의 길이를 유지해야하므로 zfill함수를 이용해 맨 앞에 0을 붙여줌 1을 가진 자리는 2의 지수만큼 곱해줌 class Solution: def reverseBits(self, n: i..
[동적계획법] 릿코드 Medium 120 'Triangle' (Python) https://leetcode.com/problems/triangle/ Triangle - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 삼각형의 꼭대기에서 바닥까지의 합을 구하는 것이므로, 아래 칸으로 이동할 때 윗 칸의 숫자를 더해준다. 삼각형의 왼쪽 변의 숫자는 항상 왼쪽 숫자를 더하고, 오른쪽 변의 숫자는 항상 오른쪽 숫자를 더한다. 삼각형의 가운데 숫자들은 자신의 위의 숫자 2개에서 작은 값을 더하면 된다. 숫자를 다 더한 바닥의 숫자들 중 최솟값을 반..

LIST