본문 바로가기
반응형

Algorithm/프로그래머스14

[프로그래머스] : Python,파이썬 카펫 풀이 def solution(brown, yellow): ab = brown + yellow for b in range(1, ab+1): if (ab / b) % 1 == 0: a = ab/ b if a >= b: if a*2 + b*2 == brown + 4: return [a,b] 방정식을 활용해야 한다. 전제 조건을 살펴보면 카펫의 가로 길이는 세로 길이와 같거나 길다. 즉, 가로 ≥ 세로가 된다. 가로를 a 세로를 b라고 했을 때 갈색과 노란색 칸 수를 구해보면 수식은 2a - 2b - 4 = Brown이 된다. 가로 * 세로를 했을 때 각 겹치는 모서리 부분을 빼줘야 하기 때문에 -4를 해준다. 즉, 저 수식에서 a 값만 구하면 b값을 알 수 있게 된다. for 문으로 전체 네모칸 만큼 반복시킨다. .. 2022. 4. 29.
[프로그래머스] : H-Index Python,파이썬 풀이 https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 풀이 H지수는 게재도니 논문의 수 보다 인용 지수가 작아지는 값을 의미한다. 입력 예제를 참고하면 [3, 0, 6, 1, 5] 총 5편이 게재되었고 인용수는 5 이상이 나와야 한다. 이 중에서 5회 이상 인용이 되지 않은 것은 3,1,0이며 가장 큰 값이 3이된다. def solution(citations): citations.s.. 2022. 4. 18.
[프로그래머스] : 약수의 합 파이썬 풀이 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 문제 설명 n은 0 이상 3000이하인 정수입니다. 제한 사항 nreturn 1228 56 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 입출력 예 def solution(n): answer = 0 for i in range(1, n+1): if n%i==0: answer += i return answer print(solution(12)) 풀이 더해진 값을 담아두기 위한 전역 변수 하나를 만들어주고 for문을 통해 1부터 n번까지 반복하도록 만들어 주었다... 2022. 2. 11.
[프로그래머스] : 자연수 뒤집어 배열로 만들기 파이썬 풀이 자연수 뒤집어 배열로 만들기 자연수 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은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 문제 설명 n은 1이상 8000000000 이하인 자연수입니다. 제한 조건 nreturn 118372873211 입출력 예 def solution(n): aList = list(str(n)) aList.sort(reverse = True) answer = int("".join(aList)) return answer 우선 n의 값이 정수로 주어지기 때문에 문자값으로 바꿔서 aList에 담아준다. aLIst에서 sort를 통해 내림차순 정렬을 해준다. answer에 담아 리턴을 해야 하므로.. 2022. 2. 7.
[프로그래머스] : 정수 제곱근 판별 파이썬 풀이 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 문제 설명 n은 1이상, 50000000000000 이하인 양의 정수입니다. 제한 사항 nreturn 121144 3-1 입출력 예 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 입출력 예 def solution(n): a = (n**0.5) if a % 1 == 0: answer = (a+1)**2 else: answer = -1 return answer a = (.. 2022. 2. 4.
[프로그래머스] : 최대공약수와 최소공배수 파이썬 풀이 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, 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.
[프로그래머스] : 콜라츠 추측 파이썬 풀이 및 해설 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 문제 설명 입력된 수, num은 1 이상 8000000 미만인 정수입니다. 제한 사항 nresu.. 2022. 1. 27.
[프로그래머스] : 행렬의 덧셈 파이썬 풀이 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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.
[프로그래머스] : 소수 찾기 파이썬 풀이 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 문제 설명 n은 2이상 1000000이하의 자연수입니다. 제한 조건 nresult 104 53 입출력 예시 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환 입출력 예시 설명 def solution(n): ch=[0]*(n+1) cnt=0 for i in range(2, n+1): if ch[i]==0: cnt+=1 for j in range(i, n+1, i): ch[j]=1 answer = cnt.. 2022. 1. 23.
[프로그래머스] : 직사각형 별찍기 파이썬 풀이 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 문제 설명 n과 m은 각각 1000 이하인 자연수입니다. 제한 조건 5 3 입력 예시 ***** ***** ***** 출력 예시 a, b = map(int, input().strip().split(' ')) for i in range(b): for j in range(a): print("*", end='') print() a와 b의 값을 받아서 직사각형 별을 찍는다. 5 3을 입력 받아 split로 공백을 기준으로 나누어 a와 b에 값을 받는다. for문을 두 번 돌려 *을 찍어주고 end=’’를 통해 한 라인으로 출력이 되도록 설정해 주었고 j f.. 2022. 1. 22.
2. 프로그래머스_직사각형 별찍기(Java) 프로그래머스_직사각형 별찍기 https://programmers.co.kr/learn/courses/30/lessons/12969 - 의사 코드 예시에서 5, 3 순서로 입력했을 때 좌우로 찍히는 게 b 위,아래로 찍히는 게 a, for문에서 위, 아래를 담당하는 첫 for문에 a까지라는 조건 넣고 두번째 for문에 좌에서 우로 찍히는 조건을 넣어주고 코드화 했습니다. - 정답 코드 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); for(int i=.. 2021. 9. 12.
1 . 프로그래머스_짝수와 홀수(Java) 프로그래머스_짝수와 홀수 https://programmers.co.kr/learn/courses/30/lessons/12937 - 의사 코드 가짜 코드라는 의사 코드를 먼저 작성해 보는 습관을 가지기로 했습니다. 간단한 문제 먼저 풀어봤는데 의사 코드는 따로 형식이 없기 때문에 편하게 적을 수 있어서 좋은 것 같습니다. - 정답 코드 class Solution { public String solution(int num) { String answer = ""; if(num%2==0){ answer = "Even"; } else { answer = "Odd"; } return answer; } } 가장 쉬운 문제부터 천천히 시작하는 게 좋을 것 같아서 쉬운 문제부터 정복해 나가겠습니다. 2021. 9. 6.
반응형