본문 바로가기

Java

(110)
[java/프로그래머스/120956] 옹알이(1) (.stream, .filter, .matches, .count()) ✏️ 문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. ✏️ code📌 .filter(b -> b.matches("^(aya|ye|woo|ma)+"))- stream(babbling): babbling 배열을 스트림으로 변환합니다.- filter(...): 각 문자열 b에 대해 matches(...) 조건을 검사합니다.- b.matches("^(aya|ye|woo|ma)+"): b가 aya, ye..
[java/프로그래머스/12950] 행렬의 덧셈 (answer=arr1, answer[i][j]+=arr2[i][j]) ✏️ 문제 설명행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.✏️ code - 1차class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr1[0].length]; for (int i = 0; i  ✏️ code - 2차📌 answer = arr1: 배열의 크기가 동일하기 때문에 answer = arr1로 설정해도 연산에는 문제가 없습니다.class Solution {..
[java/프로그래머스/120860] 직사각형 넓이 구하기 (Math.abs(), Math.max()) ✏️ 문제 설명2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.✏️ code - 1차📌 아쉬운 점- break 때문에 루프가 중간에 종료되지만, if-else를 두 번 확인해야 해서 코드가 다소 복잡합니다.import java.lang.Math;class Solution { public int solution(int[][] dots) { int x = dots[0][0]; int y = dots[0][1]; for ..
[java/프로그래머스/12917] 문자열 내림차순으로 배치하기 (StringBuilder, reverse()) ✏️ 문제 설명문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.✏️ code🖥️ StringBuilder 주요 메서드[추가]- append(String s): 문자열 끝에 추가- insert(int offset, String s): 특정 위치에 문자열 삽입[수정/삭제]- replace(int start, int end, String s): 지정된 범위를 새로운 문자열로 변경- delete(int start, int end): 지정된 범위의 문자열 삭제- deleteChatAt(int index): 특정 인덱스의 문자 하나 삭제[검색]- charAt..
[java/프로그래머스/82612] 부족한 금액 계산하기 ✏️ 문제 설명새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수..
[java/프로그래머스/120884] 치킨 쿠폰 ✏️ 문제 설명프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.✏️ codeclass Solution { public int solution(int chicken) { int result = 0, service = 0; while (chicken >= 10) { service = chicken / 10; // 서비스 치킨 개수 result += service; ..
[java/프로그래머스/120861] 캐릭터의 좌표 (dx, dy, Math.abs(x+nx) > board[0]/2 || Math.abs(y+ny) > board[1]/2, x += nx, y += ny) ✏️ 문제 설명머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요. [0, 0]은 board의 정 중앙에 위치합니다. 예를 들어 board의 가로 크기가 9라면 캐릭터..
[java/프로그래머스/120840] 구슬을 나누는 경우의 수 (경우의 수 공식 분할계산, result *= (balls - i), result /= (i+1)) ✏️ 문제 설명 머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요.✏️ code📌 경우의 수 공식: n! / (n-m)! * m!balls와 share이 30까지 갈 수 있는 상황에서 30!은 Integer의 범위를 뛰어넘는 큰 수가 됩니다.따라서 다음과 같이 식을 풀어 분할 계산하였습니다.📌result *= (balls - i); result /= (i+1);C(5, 3) = 5! / 3!*2!            = 5*4*3!..

반응형