본문 바로가기

728x90

java

(24)
프로그래머스 배열 회전시키기 문제풀이 문제 설명 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요. 제한 사항 3 ≤ numbers의 길이 ≤ 20 direction은 "left" 와 "right" 둘 중 하나입니다. 입출력 예 numbers direction result [1, 2, 3] "right" [3, 1, 2] [4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4] 문제 풀이 public int[] solution(int[] numbers, String direction) { int[] answer = new int[..
프로그래머스 공 던지기 문제풀이 문제 설명 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. 제한 사항 2
프로그래머스 2차원으로 만들기 문제풀이 문제 설명 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. num_list n result [1,2,3,4,5,6,7,8] 2 [[1,2],[3,4],[5,6],[7,8]] 제한 사항 num_list의 길이는 n의 배 수개입니다. 0 ≤ num_list의 길이 ≤ 150 2 ≤ n
프로그래머스 구슬을 나누는 경우의 수 문제풀이 문제 설명 머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요. 제한 사항 1 ≤ balls ≤ 30 1 ≤ share ≤ 30 구슬을 고르는 순서는 고려하지 않습니다. share ≤ balls 입출력 예 balls share result 3 2 3 5 3 10 문제 풀이 public int solution(int balls, int share) { return combination(balls, share); } public int co..
[JAVA] 재귀함수 간단한 예제로 이해하기 프로그래머스 코딩테스트를 진행하다 재귀함수를 쓸 일이 있어서 찾아보았다. 꽤나 이해하는데 시간이 걸렸던지라 블로그에도 적어본다. 재귀함수란? 내부적으로 자기 자신을 호출하는 함수를 재귀함수라고 하는데, 재귀 호출(자신 호출)을 너무 많이 하게 되면 스택 메모리 영역에 너무 많은 공간을 할당하게 되어 스택 오버플로가 발생할 수 있으므로 반드시 종료조건이 있어야 한다. 아래의 간단한 예제를 통해 이해를 해보자. 간단 예제 나도 이해가 꽤나 어려웠기에 간단한 예제를 통해 알아보려고 한다. public void main(String[] args) { int a = 1; System.out.println(loop(a)); } public int loop(int a) { if(a > 5) return a; retu..
프로그래머스 가위 바위 보 문제풀이 문제 설명 가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요. 제한 사항 0 s.equals("2") ? "0" : s.equals("0") ? "5" : "2") .collect(Collectors.joining()); } rsp.split을 통하여 배열을 사용하고 map을 사용해 가공한다. 위의 문제풀이와 같이 삼항연산자를 사용하여 가공한 후 joining을 사용하는데 joining은 가공한 값들을 합쳐줌 ex) 0,5,2 -> 052 태클은 환영!

반응형