프로그래머스 118

프로그래머스(Python) Level.1 하샤드 수 풀이

Python으로 구현한 12947번 하샤드 수 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr def solution(x): answer = True temp = x sum_value = 0 while temp != 0 : sum_value += temp % 10 temp //= 10 if x % sum_value != 0 : answer = False return..

프로그래머스(Python) Level.1 핸드폰 번호 가리기 풀이

Python으로 구현한 12948번 핸드폰 번호 가리기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12948 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr def solution(phone_number): data = '*' * (len(phone_number) - 4) + phone_number[-4:] return data 1. phone_number 길이에서 4를 뺀 값만큼의 '*'과 전화번호의 뒷 4자리의 번호를..

프로그래머스(Python) Level.1 x만큼 간격이 있는 n개의 숫자 풀이

Python으로 구현한 12954번 x만큼 간격이 있는 n개의 숫자 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12954 코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. programmers.co.kr def solution(x, n): answer = [] num = x for i in range(n) : answer.append(num) num += x return answer 1. 전달받은 x를 num에 삽입한다. 2...

프로그래머스(Python) Level.1 행렬의 덧셈 풀이

Python으로 구현한 12950번 행렬의 덧셈 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12950 코딩테스트 연습 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요 programmers.co.kr def solution(arr1, arr2): for i in range(len(arr1)) : for j in range(len(arr1[0])) : arr1[i][j] += arr2[i][j] return arr1 1. 두 개의 행렬 arr1과 arr2를 매개변수..

프로그래머스(Python) Level.1 직사각형 별찍기 풀이

Python으로 구현한 12969번 직사각형 별찍기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12969 코딩테스트 연습 - 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수 programmers.co.kr n, m = map(int, input().split()) for i in range(m) : for j in range(n) : print('*', end='') print() 1. 이중 for문을 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태로 '..

[구현] 이코테 (파이썬) 좌물쇠와 열쇠 풀이

[문제] 고고학자인 튜브는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 좌물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 좌물쇠를 푸는 방법에 대해 다음과 같이 설명해주는 종이가 발견되었습니다. 잠겨있는 좌물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 열쇠는 M x M 크기인 정사각 격자 형태로 되어 있습니다. 좌물쇠에는 홈이 파여 있고 열쇠 또한 홈과 돌기 부분이 있습니다. 열쇠는 회전과 이동이 가능하며 열쇠의 돌기 부분을 좌물쇠의 홈 부분에 딱 맞게 채우면 좌물쇠가 열리게 되는 구조입니다. 좌물쇠 영역을 벗어난 부분에 있는 열쇠의 홈과 돌기는 좌물쇠를 여는 데 영향..

[그리디] 이코테 (파이썬) 무지의 먹방 라이브 풀이

[문제] 평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어졌고 고민 끝에 카카오 TV 라이브 방송을 하기로 마음먹었습니다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 다음과 같이 독특한 방식을 생각해냈습니다. 회전판에 먹어야 할 N개의 음식이 있습니다. 각 음식에는 1부터 N까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요됩니다. 무지는 다음과 같은 방법으로 음식을 섭취합니다. 1. 무지는 1번 음식부터 먹기 시작하여, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓습니다. 2. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 옵니다. 3. 무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두고, 다음 음식을 섭..

[구현] 이코테 (파이썬) 문자열 압축 풀이

[문제] 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. . . . 예를 들어, "ababcdcdababcdcd"의 경우 문자를 1개 단위로 자르면 전혀 압축되지 않지만, 2개 단위로 잘라서 압축한다면 "2ab2cd2ab2cd"로 표현할 수 있습니다. 다른 방법으로 8개 단위로 잘라서 압축한다면 "2ababcdcd"로 표현할 수 있으며, 이때가 가장 짧게 압축하여 표현할 수 있는 방법입니다. . . . 압축할 문자열 s..