본문 바로가기

프로그래머스58

[프로그래머스][Level 1][Python] 행렬의 덧셈 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요 programmers.co.kr 생각한 풀이 과정 행렬의 덧셈은 두 행렬의 행과 열의 크기가 무조건 같기 때문에 크기를 생각할 때 한 행렬의 크기만 생각해도 됩니다. 행렬의 덧셈 결과를 저장할 리스트 변수를 하나 만들어줍니다. 행렬의 원소 하나씩 접근하기 위해 arr1과 arr2 내부에서 먼저 한 행에 접근하고 또 그 내부에서 한 원소씩 접근해봅니다. 이중 반복문을 사용해봅니다. 하나의 행을 의미하는 리스트를 만들고.. 2021. 7. 25.
[프로그래머스][Level 1][Python] 2016년 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 생각한 풀이 과정 2016년 1월 1일은 금요일부터 시작하므로 금요일부터 시작해서 목요일로 끝나는 튜플 변수를 하나 만들어줍니다. 1월부터 12월까지 각 월마다의 일수를 저장하는 튜플 변수를 하나 만들어줍니다. 2016년 1월 1일부터 2016년 a월 b일까지의 총 일수를 계산합니다. 총 일수를 7로 나누고 나온 나머지를 구합니다. 4번 과정에서 나온 나머지를 1번 과정에서 .. 2021. 7. 24.
[프로그래머스][Level 2][Python] 방문 길이 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 방문 길이 programmers.co.kr 생각한 풀이 과정 캐릭터가 처음 걸어본 길의 정보를 저장할 set 변수를 하나 만들어줍니다. set 변수로 만드는 이유는 처음 걸어본 길만 저장해야하기 때문에 중복을 없애기 위해서입니다. 매개변수로 주어진 명령어에서 한 명령어씩 반복해봅니다. 명령어에 의해 어떤 한 점에서 다른 한 점으로 캐릭터가 이동할 때, 출발하는 점의 정보를 (출발점 x좌표, 출발점 y좌표, 명령어) 형식의 튜플로 만들어줍니다. 처음 걸어본 길의 길이를 구해야하기 때문에 1번 과정에서의 출발점에서 다음 점으로 이동하는 정보의 반대 정보도 튜플 형식으로 생각합니다. 왜냐하면, 예를 들어, (0, 0)에서 L 명령어를 통해 (.. 2021. 7. 23.
[프로그래머스][Level 2][Python] 카펫 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 생각한 풀이 과정 매개변수 yellow값에서 가능한 직사각형, 정사각형 모양이 어떤 것이 있는지 생각해봅니다. 예를 들어, yellow가 2라면 1X2, 2X1 사각형 모양이 가능, yellow가 4라면 1X4, 2X2, 4X1 사각형 모양이 가능하며, yellow가 6이라면 1X6, 2X3, 3X2, 6X1 사각형 모양이 가능합니다. 무조건 카펫의 세로 길이가 가로 길이보다 작거나 같으므로(제한사항) 카펫에서.. 2021. 7. 22.
[프로그래머스][Level 1][Python] 시저 암호 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 파이썬 코드와 결과입니다. # 문자열 s, 거리 n이 매개변수로 주어집니다. # 문자열 s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. # 문자열 s의 길이는 8,000 이하입니다. # n은 1 이상, 25 이하인 자연수입니다. def solution(s, n): # 소문자 알파벳을 순서대로 저장한 변수를 선언합니다. alphabet = 'abcdefghijklmnopqrs.. 2021. 7. 21.
[프로그래머스][Level 2][Python] [1차] 캐시 밑의 링크는 프로그래머스에서의 문제 링크입니다. cacheSize: # cache의 맨 앞에 있는 도시를 삭제해줍니다. del cache[0] # 현재 도시가 cache에 들어있다면 elif city in cache: # cache에 있는 현재 도시의 인덱스를 저장하는 변수를 선언합니다. city_idx = cache.index(city) # cache에 있는 현재 도시를 없애줍니다. cache.pop(city_idx) # 현재 도시를 cache의 끝에 다시 넣어줍니다. cache.append(city) # cache hit이므로 총 실행시간에 1을 더해줍니다. time += 1 # 총 실행시간을 반환합니다. return time 이 문제를 처음 봤을 때 '캐시 교체 알고리즘은 LRU(Least Rece.. 2021. 7. 20.
[프로그래머스][Level 1][Python] 소수 만들기 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 파이썬 코드와 결과입니다. # combinations를 사용하기 위해 import합니다. from itertools import combinations # 숫자들이 들어있는 리스트 nums가 매개변수로 주어집니다. # 숫자의 개수는 3개 이상 50개 이하입니다. # 각 원소는 1 이상 1,000 이하의 자연수이고, 중복된 숫자는 없습니다. def solution(nums): # 서로 다른 3개의.. 2021. 7. 19.
[프로그래머스][Level 1][Python] 약수의 합 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수 programmers.co.kr 파이썬 코드와 결과입니다. # 정수 n이 매개변수로 주어집니다. # n은 0 이상 3,000 이하인 정수입니다. def solution(n): # n의 약수를 모두 더한 값을 저장할 변수를 선언합니다. answer = 0 # 1부터 n의 제곱근까지 반복할 것이므로 # n의 제곱근보다 작거나 같은 정수를 저장하는 변수를 선언합니다. limit = int(n ** .. 2021. 7. 19.
[프로그래머스][Level 2][Python] [3차] 파일명 정렬 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 파이썬 코드와 결과입니다. # 파일명들이 저장되어 있는 리스트가 매개변수로 주어집니다. # 1000개 이하의 길이입니다. def solution(files): # 정렬이 된 파일명들을 저장할 리스트 변수를 선언합니다. answer = [] # 파일들의 개수인 files의 길이를 저장하는 변수를 선언합니다. files_len = len(files) # files에 있는 각 파일마다 반복해봅니다. for i.. 2021. 7. 18.
[프로그래머스][Level 2][Python] JadenCase 문자열 만들기 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr 파이썬 코드와 결과입니다. # 문자열 s가 매개변수로 주어집니다. # 길이가 1 이상이며, 알파벳과 공백문자(" ")로 이루어져 있습니다. def solution(s): # JadenCase 문자열 결과를 저장할 변수를 선언합니다. result = '' # 한 단어를 임시로 저장할 변수를 선언합니다. word = '' # 문자열 s에서 한 문자씩 반복합니다.. 2021. 7. 17.