본문 바로가기

연습문제31

[프로그래머스][Level 2][Python] 최솟값 만들기 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr 주의해야 할 점 매개변수로 주어지는 두 리스트 A, B의 길이가 서로 다르다면 좀 더 어려울 수도 있는 문제라고 생각됩니다. 이번 문제에서는 매개변수의 두 리스트 A, B의 길이가 같습니다. 굳이 주의할 점은 아니지만 두 리스트의 길이를 저장하려면 그냥 A, B 중 한 리스트의 길이만 재서 저장하면 됩니다. 생각한 풀이 과정 최종적으로 누적된 최솟값을 저장할 min_result 변수를 만들어줍.. 2021. 8. 1.
[프로그래머스][Level 2][Python] 숫자의 표현 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 주의해야 할 점 정확성뿐만 아니라 효율성도 테스트하는 문제입니다. 정확성만 테스트하는 문제라고 해도 어느정도 효율성에 맞는 코드를 짜야되지만, 이런 문제와 같이 효율성을 대놓고 체크하는 문제는 실행 시간이 빠른 코드를 짜는데도 집중해야 합니다. 저처럼 코드를 짜게 된다면 n을 연속한 자연수들로 표현하는 방법들을 구할 때 시작하는 수를 무작정 1부터 n까지 고려하면 더 비효율적인 코드가 나올 것입.. 2021. 7. 31.
[프로그래머스][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 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 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] JadenCase 문자열 만들기 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr 파이썬 코드와 결과입니다. # 문자열 s가 매개변수로 주어집니다. # 길이가 1 이상이며, 알파벳과 공백문자(" ")로 이루어져 있습니다. def solution(s): # JadenCase 문자열 결과를 저장할 변수를 선언합니다. result = '' # 한 단어를 임시로 저장할 변수를 선언합니다. word = '' # 문자열 s에서 한 문자씩 반복합니다.. 2021. 7. 17.
[프로그래머스][Level 2][Python] 최댓값과 최솟값 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 파이썬 코드와 결과입니다. # 둘 이상의 정수가 공백으로 구분되어 있는 문자열 s가 매개변수로 주어집니다. def solution(s): # 문자열 s를 공백으로 구분한 뒤, 각 숫자를 정수형으로 변환하고 리스트 변수에 넣어줍니다. nums = list(map(int, s.split(' '))) # 반환 형식에 맞게 최솟값과 최댓값을 저장하는 문자열 변수를 선언합니다. max_min = .. 2021. 7. 17.
[프로그래머스][Level 2][Python] 다음 큰 숫자 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 파이썬 코드와 결과입니다. # 자연수 n이 매개변수로 주어집니다. # n은 1,000,000 이하의 자연수입니다. def solution(n): # n을 2진수로 바꿨을 때, 1의 개수를 저장하는 변수를 선언합니다. bin_n_one_cnt = bin(n).count('1') # 다음 큰 숫자를 찾을 때까지 반복합니다. while True: # n에 1을 더합니다. n += 1 # .. 2021. 7. 17.
[프로그래머스][Level 2][Python] 올바른 괄호 밑의 링크는 프로그래머스에서의 문제 링크입니다. 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 파이썬 코드와 결과입니다. # '(' 또는 ')'로만 이루어진 문자열 s가 매개변수로 주어집니다. # s의 길이는 100,000 이하의 자연수입니다. def solution(s): # 올바른지 올바르지 않은 괄호인지 여부를 저장하는 변수를 선언합니다. # 올바른 괄호라는 뜻인 True로 초기화합니다. answer = True # '('를 저장할 괄호 스택 리스트 변수를 .. 2021. 7. 16.