본문 바로가기

전체 글130

[programmers] 2016년 2016년 2016년 x2016년 1월 1일은 금요일입니다. 2016년 A월 B일은 무슨 요일일까요? 두 수 A,B를 입력받아 A월 B일이 무슨 요일인지 출력하는 getDayName 함수를 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각​SUN,MON,TUE,WED,THU,FRI,SAT​를 출력해주면 됩니다. 예를 들어 A=5, B=24가 입력된다면 5월 24일은 화요일이므로 TUE를 반환하면 됩니다. 메소드를 최대한 이용해서 풀어보려고 했으나 11월과 2월에서 하루의 오차가 발생하는 현상이 일어나서 포기하고 단순하게 배열 month에 각 월의 일 수를 넣어주고, weeks에 목요일부터 넣어주었다. (1월 1일은 금요일이므로 days % 7 = 1일 때 금요일이어야 한다.)a-1월 까지의 일 수를 .. 2018. 5. 22.
[programmers] 행렬의 곱셈 행렬의 곱셈 행렬의 곱셈 x행렬의 곱셈은, 곱하려는 두 행렬의 어떤 행과 열을 기준으로, 좌측의 행렬은 해당되는 행, 우측의 행렬은 해당되는 열을 순서대로 곱한 값을 더한 값이 들어갑니다. 행렬을 곱하기 위해선 좌측 행렬의 열의 개수와 우측 행렬의 행의 개수가 같아야 합니다. 곱할 수 있는 두 행렬 A,B가 주어질 때, 행렬을 곱한 값을 출력하는 productMatrix 함수를 완성해 보세요. 수학의 행렬 곱셈 방식을 알고 있다면 금방 풀 수 있을 것이다. 반복문의 반복횟수를 배열길이 계산으로 주자니 조금 헷갈리는 부분 말고는 어려울게 없는 문제였다. xclass ProductMatrix {​ public int[][] productMatrix(int[][] A, int[][] B) { int[][] a.. 2018. 5. 22.
[programmers] 콜라츠 추측 콜라츠 추측 콜라츠 추측 x1937년 Collatz란 사람에 의해 제기된 이 추측은, 입력된 수가 짝수라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한 다음, 결과로 나온 수에 같은 작업을 1이 될 때까지 반복할 경우 모든 수가 1이 된다는 추측입니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. collatz 함수를 만들어 입력된 수가 몇 번 만에 1이 되는지 반환해 주세요. 단, 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 숫자가 1이 될 때까지 짝수이면 2를 나누어주고, 홀수이면 3을 곱한 뒤 1을 더하는 작업을 반복한다. 몇 번만에 1이 되는지 확인하는 것이므로 각 작업 뒤에는 횟수를 카운트해준다.횟수를 카운트한 뒤.. 2018. 5. 22.
[programmers] 나누어 떨어지는 숫자 배열 나누어 떨어지는 숫자 배열 나누어 떨어지는 숫자 배열 ​xdivisible 메소드는 int형 배열 array와 int divisor를 매개변수로 받습니다.array의 각 element 중 divisor로 나누어 떨어지는 값만 포함하는 새로운 배열을 만들어서 반환하도록 divisible에 코드를 작성해 보세요.​예를들어 array가 {5, 9, 7, 10}이고 divisor가 5이면 {5, 10}을 리턴해야 합니다. array에서 divisor로 나누어지는 수가 몇 개인지 알 수 없어서 ArrayList를 이용했다. 반복문을 이용해서 각각의 수가 나누어지는 지를 확인한 뒤, 나누어 떨어지는 값만 리스트에 저장해 배열로 옮겼다. ArrayList클래스는 알아서 배열로 바꾸어주는 toArray()메소드를 지원.. 2018. 5. 22.
[programmers] 행렬의 덧셈 행렬의 덧셈 행렬의 덧셈 x행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환해 주세요.​예를 들어 2x2 행렬인 A = ((1, 2), (2, 3)), B = ((3, 4), (5, 6)) 가 주어지면, 같은 2x2 행렬인 ((4, 6), (7, 9))를 반환하면 됩니다.(어떠한 행렬에도 대응하는 함수를 완성해주세요.) 그냥 같은 행, 같은 열에 있는 숫자끼리 더해주면 된다.이중 for문을 돌려서 간단하게 구했다.나처럼 A값을 대입해서 B를 더해도되고, 새롭게 배열을 생성해서 A+B 값을 더한 값을 대입해주어도 된다. xclass SumMatrix { int[][] sum.. 2018. 5. 21.
[programmers] 문자열 내림차순으로 배치하기 문자열 내림차순으로 배치하기 문자열 내림차순으로 배치하기 xreverseStr 메소드는 String형 변수 str을 매개변수로 입력받습니다.str에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 String을 리턴해주세요.str는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.예를들어 str이 Zbcdefg면 gfedcbZ을 리턴하면 됩니다. 문자를 큰것부터 작은 것까지 내림차순으로 정렬하는 문제이다. 어떻게 보면 복잡해질 수도 있는데, 이게 대문자는 소문자보다 작은것으로 간주한다고 문제에 주어져 있기 때문에 유니코드 순으로 정렬하면 된다. 문자열을 배열로 잘라주고 Arrays클래스의 sort()메소드로 간단하게 정렬해준다.이 때, Arrays.sort(arr)로 정.. 2018. 5. 21.
[programmers] 삼각형출력하기 삼각형출력하기 삼각형출력하기 xprintTriangle 메소드는 양의 정수 num을 매개변수로 입력받습니다.다음을 참고해 *(별)로 높이가 num인 삼각형을 문자열로 리턴하는 printTriangle 메소드를 완성하세요printTriangle이 return하는 String은 개행문자('\n')로 끝나야 합니다.​높이가 3일때​******높이가 5일때​*************** 이건 정올 문제 풀면서 별삼각형 만들기를 했었기 때문에 쉽게 풀었다.그냥 행이 커질때마다 별 출력하고 개행해주면 된다. xxxxxxxxxxpublic class PrintTriangle { public String printTriangle(int num){ String answer = ""; for (int i = 1; i 2018. 5. 21.
[programmers] 가운데 글자 가져오기 가운데 글자 가져오기 가운데 글자 가져오기 xgetMiddle메소드는 하나의 단어를 입력 받습니다. 단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요. 단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다.예를들어 입력받은 단어가 power이라면 w를 반환하면 되고, 입력받은 단어가 test라면 es를 반환하면 됩니다. 단어 길이의 절반인 위치를 구해 짝수면 앞자리 글자를 같이 가져와 반환하고, 홀수는 그자리의 글자를 반환했다. xxxxxxxxxxclass StringExercise {​ String getMiddle(String word) {​ int wl = word.length() / 2;​ if (word.length() % 2 == 0) return "" +.. 2018. 5. 21.
[programmers] 약수의 합 약수의 합 약수의 합 x어떤 수를 입력받아 그 수의 약수를 모두 더한 수 sumDivisor 함수를 완성해 보세요. 예를 들어 12가 입력된다면 12의 약수는 [1, 2, 3, 4, 6, 12]가 되고, 총 합은 28이 되므로 28을 반환해 주면 됩니다. 1부터 약수가 되는 수를 찾아 더해주었다. xxxxxxxxxxclass SumDivisor { public int sumDivisor(int num) { int answer = 0; for (int i = 1; i 2018. 5. 21.
[programmers] 스트링을 숫자로 바꾸기 스트링을 숫자로 바꾸기 스트링을 숫자로 바꾸기 xstrToInt 메소드는 String형 str을 매개변수로 받습니다.str을 숫자로 변환한 결과를 반환하도록 strToInt를 완성하세요.예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 그냥 Integer.parseint()로 간단하게 해결했다. xxxxxxxxxxpublic class StrToInt { public int getStrToInt(String str) { return Integer.parseInt(str); }​ // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(.. 2018. 5. 21.