문제풀이/Programmers

[문제] https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [코드] def solution(s): cnt, zero_cnt = 0, 0 while s != '1': zero_cnt += s.count('0') s = bin(len(s.replace('0', '')))[2:] cnt += 1 return [cnt, zero_cnt]
[문제] https://school.programmers.co.kr/learn/courses/30/lessons/12951# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 문자열을 split(' ') 함수로 쪼개 리스트에 담았다. 괄호안에 ' ' 가 있기 때문에 공백문자 1개를 기준으로 쪼갠다. 문자열에 "Hello Hi" 이런식으로 공백문자가 2개 들어있었던 경우 ["Hello", "", "Hi"] 이렇게 리스트가 만들어진다. 따라서 리스트 원소의 길이가 0이 아닐 경우 upper과 lower 함수를 이용해 대문자 소문자 조건을 충족한다. 리스..
[문제] https://school.programmers.co.kr/learn/courses/30/lessons/12939?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [코드] def solution(s): numbers = list(map(int, s.split())) return '%d %d' %(min(numbers), max(numbers))
[문제] https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr [풀이] 각 의상별 가짓수 계산 부위별 옷에서 아무것도 안입는 경우가 있을 수 있어 각 가짓수에 1을 더해 곱한다. 하루에 최소 한 개의 옷은 입기 때문에 모두 안입은 경우인 1을 뺀다. [코드] def solution(clothes): closet = {} for cloth in clothes: if cloth[1] in closet: closet[cloth[1]] += 1 else: closet[cloth[1]] = 1 answer = 1 for i in closet.values(): answer *= (i + 1) return ans..
[문제] https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr [풀이] 문제에서 필요한 과정을 나누면 총 3가지로 나눌 수 있다. rows x columns 크기 행렬 선언 후 1부터 rows x columns 까지의 숫자 대입 행렬 테두리 회전하기 회전에 의해 위치가 바뀐 숫자들 중 가장 작은 숫자를 순서대로 배열에 담기 1. rows x columns 크기 행렬 선언 후 1부터 rows x c..
[문제] https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr [풀이] 문제가 너무 길어서 처음엔 어려운 문제인줄 알았다. 읽어보니까 순서는 전혀 상관없고 민우가 구매한 로또 번호와 당첨 번호가 일치하는 개수 민우가 구매한 로또 번호 중 0의 개수 이렇게 두 가지를 구하면 첫 번째는 최저 순위, 첫 번째와 두 번째를 더한 경우는 최고 순위가 된다. 민우가 구매한 로또 ..
[문제] https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr [코드] def check(a, b, c): total = a + b + c for i in range(2, total // 2 + 1): if total % i == 0: return False return True def solution(nums): answer = 0 for i in range(0, len(nums) - 2): ..
[문제] https://programmers.co.kr/learn/courses/30/lessons/12930 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr [풀이] 1. split 함수 문자열.split('구분자') split 함수는 문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수이다. 근데 문제를 풀다가 이해가 안가는 한가지.. 해당 문제의 조건이 "각 단어는 하나 이상의 공백 문자로 구분되어있다" 라고 되어있는데 왜 split() 이 아닌 split(" ") 일까?.. split..
[문제] https://programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr [풀이] 이 문제의 정렬 조건 각 문자열의 인덱스 n번째 글자 기준 오름차순으로 정렬 인덱스 n의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치 일단 문제가 정렬문제이고 다중 조건인 경우, 람다식을 사용한 정렬을 이용해 문제를 해결한다. a = [(1, 2)..
서채리
'문제풀이/Programmers' 카테고리의 글 목록