분류 전체보기

[문제] 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)..
[문제] https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr [풀이] 하샤드 수란 x 자릿수 합으로 x가 나누어 지는 수 이다. 18의 경우 18 -> 1 + 8 = 9, 18 % 9 = 0 이기 때문에 18은 하샤드 수이다. 11의 경우 11 -> 1 + 1 = 2, 11 % 2 != 0 이기 때문에 11은 하샤드 수가 아니다. 문제는 10의 자리 숫자와 1의 자리 숫자를 어떻게 효율..
[문제] https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr [풀이] 이 문제는 enumerate만 알면 쉽게 풀 수 있는 문제이다. enumerate 반복문 사용 시 몇 번째 반복문인지 확인할 수 있다 인덱스 번호와 컬렉션의 원소를 tuple형태로 반환 또, 시험은 최대 10,000 문제로 구성되어 있기 때문에 각 학생이 찍는 패턴을 반복하기 위해 % (나머지) 를 사용한다. 1번 학생의 0번 답이 맞았는지 구..
[문제] https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr [풀이] 각 직사각형 가로 세로 값 통틀어 큰 수들 중 가장 큰 수, 작은 수들 중 가장 큰 수를 구하면 된다. 문제에 나온 예로 구해보자면 _max 리스트와 _min 리스트를 선언한 후 [60, 50] 중 큰 값인 60을 max에, 작은 값인 50을 min에 담는다. 앞에 설명한 방법과 같이 모든 명함의 값을 정리하면 _max = [60, 70, 60, ..
서채리
'분류 전체보기' 카테고리의 글 목록 (14 Page)