[프로그래머스] : 자연수 뒤집어 배열로 만들기 파이썬 풀이
자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 문제 설명 n은 10,000,000,000이하인 자연수입니다. 제한 조건 nreturn 12345[5,4,3,2,1] 입출력 예시 def solution(n): a = list(str(n)) a.reverse() return list(map(int, a)) print(solution(12345)) 문제 풀이 먼저 int 형식의 데이터를 문자열로 바꿔 list a에 담았다. a를 reverse() 함수를 통해 뒤집어주었다. list 형식으로 리턴을 하면서 문자열로 바꿔주었던 데이터를 다시 정수 자료형으로 바꾸어 리턴해 준다. 맨 아래는 테..
2022. 2. 9.
[프로그래머스] : 최대공약수와 최소공배수 파이썬 풀이
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 문제 설명 두 수는 1이상 1000000이하의 자연수입니다. 제한 사항 nmreturn 312[3, 12] 25[1, 10] 입출력 예 입출력 예 #1 위의 설명과 같습니다. 입출력 예 #2 자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다. 입출력 예 설명 def gcd(a, b): if a
2022. 1. 28.
[프로그래머스] : 행렬의 덧셈 파이썬 풀이
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 문제 설명 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 제한 조건 arr1arr2return [[1,2],[2,3]][[3,4],[5,6]][[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 입출력 예시 def solution(arr1, arr2): for i in range(len(arr1)): for j in range(len(arr1[i])): arr1[i][j] += arr2[i][j] return arr1 풀이 코드 def solut..
2022. 1. 26.
[프로그래머스] : x만큼 간격이 있는 n개의 숫자 파이썬 풀이
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 문제 설명 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 제한 조건 xnanswer 25[2,4,6,8,10] 43[4,8,12] -42[-4, -8] 입출력 예 def solution(x, n): answer = [] for i in range(1, n+1): answer.append(x*i) return answer; 정답 풀이 x부터 시작해서 x씩 증가하는 식을 우선 만들어야 한다. for i in range(1, n+1): 을 통해..
2022. 1. 24.
[파이썬 알고리즘 문제풀이] : 봉우리
코딩 테스트 문제 풀이 문제 이름 : 봉우리 지도 정보가 N*N 격자판이 주어진다. 격자판에 있는 숫자 중 상하좌우에 있는 숫자보다 큰 숫자는 봉우리 지역인데 이 봉우리 지역이 몇 개인지 구하라. 격자의 가장 자리는 0으로 초기화가 되어 있다고 가정한다. n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] dx=[-1, 0, 1, 0] dy=[0, 1, 0, -1] a.insert(0, [0]*n) a.append([0]*n) for x in a: x.insert(0, 0) x.append(0) cnt = 0 for i in range(1, n+1): for j in range(1, n+1): if all(a[i][j] > a..
2022. 1. 19.
[파이썬 알고리즘 문제풀이] : 카드 역배치(정올 기출)
문제 1부터 20까지 오름차순 정렬 된 카드가 주어지고 주어지는 두 수의 범위 내 카드들을 역으로 배치해준다. 주의 풀이 #a, b = map(int, input().split()) # 스왑하는 방법이다. # a, b = b, a # print(a, b) a = list(range(21)) #_를 통해 변수 없이 반복을 하게 된다. => 시간이 좀 더 단축하게 된다. for _ in range(10): s, e = map(int, input().split()) # +1을 더해줘서 반복하는 수를 맞춰준다. for i in range((e-s+1)//2): # 스왑을 해준다. a[s+i], a[e-i] = a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' ')
2021. 12. 30.