전체 글(141)
-
[프로그래머스][LV.0] 정수를 나선형으로 배치하기 | python3
문제링크: 정수를 나선형으로 배치하기 문제설명양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n2 까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요. 제한조건- 1 ≤ n ≤ 30 문제풀이def solution(num): if num==1: return [[1]] answer = [[0 for _ in range(num)] for _ in range(num)] x,y=0,0 dir='r' for n in range(1,num**2+1): answer[x][y]=n if dir=='r': y+=1 if y..
2025.02.18 -
[프로그래머스][LV.2] 영어 끝말잇기 | python3
문제 링크: 영어 끝말잇기 문제 설명문제 설명1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.이전에 등장했던 단어는 사용할 수 없습니다.한 글자인 단어는 인정되지 않습니다.다음은 3명이 끝말잇기를 하는 상황을 나타냅니다.tank → kick → know → wheel → land → dream → mother → robot → tank위 끝말잇기는 다음과 같이 진행됩니다.1번 사람이 자신의 첫 번째 차례에 tank를 말합니다.2번 사람이 자신의 ..
2025.02.15 -
[프로그래머스][LV.2] 점프와 순간 이동 | python3
문제 링크: 점프와 순간 이동 문제 설명문제 설명OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는..
2025.02.15 -
[프로그래머스][LV.2] 피보나치 수 | python3
문제 링크: 피보나치 수 문제 설명문제 설명피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.예를들어F(2) = F(0) + F(1) = 0 + 1 = 1F(3) = F(1) + F(2) = 1 + 1 = 2F(4) = F(2) + F(3) = 1 + 2 = 3F(5) = F(3) + F(4) = 2 + 3 = 5와 같이 이어집니다.2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.제한사항- n은 2 이상 100,000 이하인 자연수입니다. 문제 풀이저번에 비슷한 문제에서 리스트를 사용하여 풀었었는데 리스트를 사용하지 않고 푸는 ..
2025.02.11 -
[프로그래머스][LV.2] 최솟값 만들기 | python3
문제 링크: 최솟값 만들기 문제 설명문제 설명길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다.배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.)예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5)A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 : 5..
2025.02.11 -
[프로그래머스][LV.2] 최댓값과 최솟값 | python3
문제 링크: 최댓값과 최솟값 문제 설명문제 설명문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.제한사항- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 문제 풀이문자열 s를 ' '기준으로 나누어서 정수화시킨다음 리스트로 만들어서 max값과 min값 구 내코드def solution(s): int_s= list(map(int, s.split())) max_s=max(int_s) min_s=min(int_s..
2025.02.11