목록프로그래밍언어공부/Java (17)
뭐라도 배우면 기록하자
문제 및 풀이 출처 http://www.helloworld.co.kr [문제]효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 출력하는 jumpCase 함수를 완성하세요. 예를 들어 4가 입력된다면, 5를 반환해 주면 됩니다. class JumpCase { public int jumpCase(int num) { int answer = 0; return answer; } pu..
문제 출처: http://www.tryhelloworld.co.kr 문제양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.Harshad함수는 양의 정수 n을 매개변수로 입력받습니다. 이 n이 하샤드수인지 아닌지 판단하는 함수를 완성하세요. 예를들어 n이 10, 12, 18이면 True를 리턴 11, 13이면 False를 리턴하면 됩니다. public class HarshadNumber{public boolean isHarshad(int num){ return true;} // 아래는 테스트로 출력해 보기 위한 코드입니다.public static void main(String[] ..
문제 출처: http://www.tryhelloworld.co.kr 문제 행렬의 곱셈은, 곱하려는 두 행렬의 어떤 행과 열을 기준으로, 좌측의 행렬은 해당되는 행, 우측의 행렬은 해당되는 열을 순서대로 곱한 값을 더한 값이 들어갑니다. 행렬을 곱하기 위해선 좌측 행렬의 열의 개수와 우측 행렬의 행의 개수가 같아야 합니다. 곱할 수 있는 두 행렬 A,B가 주어질 때, 행렬을 곱한 값을 출력하는 productMatrix 함수를 완성해 보세요. class ProductMatrix {public int[][] productMatrix(int[][] A, int[][] B) {int[][] answer = null; return answer;} public static void main(String[] args)..
문제 출처 https://www.kakaocode.com 문제 직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 return하도록 solution 함수를 완성해 주세요.단, 직사각형의 각 변은 x축, 혹은 y축에 평행하며, 반드시 직사각형을 만들 수 있는 경우만 입력으로 주어집니다. 제한사항- 좌표값: 10억이하의 자연수- 각 점의 좌표는 [x축, y축]순입니다. 내 코드 class Solution { public int[] solution(int[][] v) { int x; int y; if(v[0][0] == v[1][0]){ x = v[2][0]; }else if(v[0][0] == v[2][0]){ x = v[1][0]; }else{ x =v[0][0];..
문제 및 답안 출처: http://www.tryhelloworld.co.kr 문제2016년 1월 1일은 금요일입니다. 2016년 A월 B일은 무슨 요일일까요? 두 수 A,B를 입력받아 A월 B일이 무슨 요일인지 출력하는 getDayName 함수를 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각SUN,MON,TUE,WED,THU,FRI,SAT를 출력해주면 됩니다. 예를 들어 A=5, B=24가 입력된다면 5월 24일은 화요일이므로 TUE를 반환하면 됩니다.class TryHelloWorld { public String getDayName(int a, int b) { String answer = ""; return answer; } public static void main(String[] args) ..
문제 및 답안 출처: http://www.tryhelloworld.co.kr 문제 자연수로 이루어진 길이가 같은 수열 A,B가 있습니다. 최솟값 만들기는 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한 값을 누적하여 더합니다. 이러한 과정을 수열의 길이만큼 반복하여 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다.예를 들어 A = [1, 2] , B = [3, 4] 라면 1. A에서 1, B에서 4를 뽑아 곱하여 더합니다. 2. A에서 2, B에서 3을 뽑아 곱하여 더합니다.수열의 길이만큼 반복하여 최솟값 10을 얻을 수 있으며, 이 10이 최솟값이 됩니다. 수열 A,B가 주어질 때, 최솟값을 반환해주는 getMinSum 함수를 완성하세요.class TryHelloWorld { publ..
문제 및 답안 출처: http://www.tryhelloworld.co.kr 문제어떤 수를 입력받아 그 수의 약수를 모두 더한 수 sumDivisor 함수를 완성해 보세요. 예를 들어 12가 입력된다면 12의 약수는 [1, 2, 3, 4, 6, 12]가 되고, 총 합은 28이 되므로 28을 반환해 주면 됩니다. class SumDivisor { public int sumDivisor(int num) { int answer = 0; return answer; } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args) { SumDivisor c = new SumDivisor(); System.out.println(c.sumDivisor(12)..
문제 및 답안 출처: http://www.tryhelloworld.co.kr 문제피보나치 수는 F(0) = 0, F(1) = 1일 때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식입니다. 2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환해 주세요. 예를 들어 n = 3이라면 2를 반환해주면 됩니다.class Fibonacci { public long fibonacci(int num) { long answer = 0; return answer; } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args) { Fibonacci c = new Fibonacci();..
문제 및 답안 출처: http://www.tryhelloworld.co.kr 문제 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환해 주세요.예를 들어 2x2 행렬인 A = ((1, 2), (2, 3)), B = ((3, 4), (5, 6)) 가 주어지면, 같은 2x2 행렬인 ((4, 6), (7, 9))를 반환하면 됩니다.(어떠한 행렬에도 대응하는 함수를 완성해주세요.)class SumMatrix { int[][] sumMatrix(int[][] A, int[][] B) { int[][] answer = {{0,0},{0,0}}; return answer; } // 아래..
문제 및 답안 출처: http://www.tryhelloworld.co.kr 문제divisible 메소드는 int형 배열 array와 int divisor를 매개변수로 받습니다. array의 각 element 중 divisor로 나누어 떨어지는 값만 포함하는 새로운 배열을 만들어서 반환하도록 divisible에 코드를 작성해 보세요.예를들어 array가 {5, 9, 7, 10}이고 divisor가 5이면 {5, 10}을 리턴해야 합니다. import java.util.Arrays; class Divisible {public int[] divisible(int[] array, int divisor) {//ret에 array에 포함된 정수중, divisor로 나누어 떨어지는 숫자를 순서대로 넣으세요.int[..