본문 바로가기
반응형

전체 글99

[프로그래머스] 하샤드 수 - Java 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 문제 풀이 class Solution { public boolean solution(int x) { boolean answer = true; int num = x; int sum = 0; // 자릿수 합 구하기 while(num > 0) { sum += num % 10; num /= 10; } // 하샤드 수 확인 if(x % sum != 0) { answer = false; } return answer; } } http.. 2021. 4. 9.
[프로그래머스] 예산 - Python 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 푼제 풀이 def solutio.. 2021. 4. 8.
[프로그래머스] 콜라츠 추측 - Python 문제 설명 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을 반환해 주세요. 문제 풀이 def solution(num): answer = 0 while num.. 2021. 4. 8.
[프로그래머스] 영어 끝말잇기 - Python 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 자신의 첫 번째 차례에 .. 2021. 4. 8.
[프로그래머스] 숫자의 표현 - Python 문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 문제 풀이 def solution(n): answer = 0 for i in range(1, n + 1): total = 0 for j in range(i, n + 1): total += j if total == n: answer += 1 break el.. 2021. 4. 8.
[프로그래머스] 다음 큰 숫자 - Python 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 문제 풀이 def solution(n): answer = 0 n_count = bin(n).count('1') num = n + 1 while(True): if bin(num).count('1') == n.. 2021. 4. 8.
[프로그래머스] 수박수박수박수박수박수? - Python 문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를 들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 문제 풀이 def solution(n): answer = '' if n % 2 == 1: answer = '수' + ('박수' * (n // 2)) else: answer = '수박' * (n // 2) return answer https://programmers.co.kr/learn/courses/30/lessons/12922 2021. 4. 8.
[프로그래머스] 두 개 뽑아서 더하기 - Python 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 문제 풀이 def solution(numbers): answer = [] for i in range(len(numbers) - 1): for j in range(i + 1, len(numbers)): answer.append(numbers[i] + numbers[j]) # 중복인 수들을 제거하고 오름차순으로 정렬 answer = sorted(list(set(answer))) return answer https://programmers.co.kr/learn/courses/30/les.. 2021. 4. 7.
[Java] Thread를 이용한 타이머 + GUI 실행영상 바가 줄어드는 타이머와 숫자가 줄어드는 두 가지의 타이머입니다. class TimerBar extends JLabel implements Runnable { int width = 450, height = 50; int x = 10, y = 50; Color color = new Color(255, 0, 0); int second; public TimerBar(int second) { setBackground(color); setOpaque(true); setBounds(x, y, width, height); this.second = second; } @Override public void run() { while (true) { try { Thread.sleep(1000 / (width / se.. 2021. 4. 1.
728x90
반응형