목록algorithm/Python (36)
on my way

def solution(lottos, win_nums): cnt0 = lottos.count(0) cntw = 0 for w in win_nums: if w in lottos: cntw += 1 scores = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6} return scores[cntw + cnt0], scores[cntw] 처음에는 7 - 일치 횟수 이런식으로 풀어서 코드가 더러워진 감이 있었다.깔끔하게 정리하기 위해 딕셔너리를 사용해서 일치 횟수와 매칭시켜 출력하게끔 했다. 코드 해설cnt0 계산:cnt0 = lottos.count(0)는 민우가 모르는 번호 0의 개수를 계산cntw 계산:cntw는 민우가..

땅따먹기 게임 문제 풀이문제 설명땅따먹기 게임은 N행 4열로 이루어진 배열 형태의 땅을 가지고 진행됩니다. 게임의 규칙은 다음과 같습니다:각 행의 4개 숫자 중 하나를 선택하여 점수를 획득합니다.한 행씩 내려오며 점수를 얻어야 합니다.같은 열을 연속으로 선택할 수 없습니다.예를 들어, 다음과 같은 배열이 주어졌을 때:1 2 3 55 6 7 84 3 2 1첫 번째 행에서 네 번째 칸(5)을 선택하고, 두 번째 행에서 두 번째 칸(6)을 선택하며, 세 번째 행에서 첫 번째 칸(4)을 선택하는 방식으로 진행됩니다. 이 때, 얻을 수 있는 점수의 최대값을 구하는 문제입니다.제한사항행의 개수 N: 100,000 이하의 자연수열의 개수는 4개점수: 100 이하의 자연수문제 접근 방식DP 방식 구현DP 테이블 초기화..

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음 틀린 코드def getDivisor(n): cnt = 0 for i in range(1, n+1): if n%i==0: cnt +=1 return cntdef solution(number, limit, power): return sum([getDivisor(i) if getDivisor(i) 효율성 문제:getDivisor 함수에서 1부..

이 문제의 목표는 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 구하는 것이다.소수는 1과 자기 자신으로만 나누어지는 수를 의미한다.코드import mathdef isPrime(n): for i in range(2, int(math.sqrt(n)) + 1): if n % i == 0: return False return Truedef solution(n): return sum([isPrime(n) for n in range(2, n + 1)]) 문제 해설isPrime(n) 함수: 주어진 숫자 n이 소수인지 판별하는 함수이다.입력: 정수 n출력: True 또는 False작동 원리:입력된 숫자 n의 제곱근까지의 수를 검사한다.제곱근까지만 검사하는 이유는,..

https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 코드def solution(d, budget): d.sort() while budget 문제 해결 과정1. 배열 정렬: d.sort()먼저, 부서별 신청 금액 배열 d를 오름차순으로 정렬한다.이렇게 하면 가장 적은 금액부터 차례대로 예산을 소모할 수 있게 된다. 2. 총 합 계산: while budget 배열 d의 총 합을 계산한다. 만약 이 총 합이 주어진 예산budget보다 ..
https://programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr# 틀린 코드def solution(numbers): return ''.join(map(str,sorted(numbers, key=lambda x : x*pow(10,(len(str(max(numbers)))-len(str(x)))), reverse=True)))3과 30중에 3이 큰 걸 캐치하지 못해 틀림 # 정답 코드def solution(numbers): return str(int(''.join..