
프로그래머스 코딩테스트 입문 Java로 Day 5 수학, 배열, Day 6 문자열, 반복문, 출력, 배열, 조건문 풀기

머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
제한사항
price ≤ 1,000,000price는 10원 단위로(1의 자리가 0) 주어집니다.입출력 예
| price | result |
|---|---|
| 150,000 | 142,500 |
| 580,000 | 464,000 |
class Solution {
public int solution(int price) {
int answer = 0;
if (price >= 500000) answer = price * 80 / 100;
else if (price >= 300000) answer = price * 90 / 100;
else if (price >= 100000) answer = price * 95 / 100;
else answer = price;
return answer;
}
}
머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
money ≤ 1,000,000입출력 예
| money | result |
|---|---|
| 5,500 | [1, 0] |
| 15,000 | [2, 4000] |
class Solution {
public int[] solution(int money) {
int[] answer = new int[2];
answer[0] = money / 5500;
answer[1] = money % 5500;
return answer;
}
}
머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요.
제한사항
입출력 예
| age | result |
|---|---|
| 40 | 1983 |
| 23 | 2000 |
class Solution {
public int solution(int age) {
int answer = 0;
answer = 2022 - age + 1;
return answer;
}
}
정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
num_list의 길이 ≤ 1,000num_list의 원소 ≤ 1,000입출력 예
| num_list | result |
|---|---|
| [1, 2, 3, 4, 5] | [5, 4, 3, 2, 1] |
| [1, 1, 1, 1, 1, 2] | [2, 1, 1, 1, 1, 1] |
| [1, 0, 1, 1, 1, 3, 5] | [5, 3, 1, 1, 1, 0, 1] |
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[num_list.length];
for (int i = 0; i < num_list.length; i++) {
answer[i] = num_list[num_list.length-1-i];
}
return answer;
}
}

문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
my_string의 길이 ≤ 1,000입출력 예
| my_string | return |
|---|---|
| "jaron" | "noraj" |
| "bread" | "daerb" |
class Solution {
public String solution(String my_string) {
String answer = "";
char[] str = my_string.toCharArray();
char[] arr = new char[str.length];
for (int i = 0; i < str.length; i++) {
arr[i] = str[str.length-i-1];
}
answer = new String(arr);
return answer;
}
}
""의 높이와 너비를 1이라고 했을 때, ""을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
제한사항
n ≤ 10입출력 예
입력 #1
3
출력 #1
*
**
***
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print('*');
}
System.out.println();
}
}
}
정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
num_list의 길이 ≤ 100num_list의 원소 ≤ 1,000입출력 예
| num_list | result |
|---|---|
| [1, 2, 3, 4, 5] | [2, 3] |
| [1, 3, 5, 7] | [0, 4] |
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[2];
for (int i = 0; i < num_list.length; i++) {
if (num_list[i] % 2 == 0) answer[0]++;
else answer[1]++;
}
return answer;
}
}
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
my_string 길이 ≤ 5n ≤ 10입출력 예
| my_string | n | result |
|---|---|---|
| "hello" | 3 | "hhheeellllllooo" |
class Solution {
public String solution(String my_string, int n) {
String answer = "";
char[] arr = my_string.toCharArray();
char[] str = new char[arr.length*n];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < n; j++) {
str[i*n+j] = arr[i];
}
}
answer = new String(str);
return answer;
}
}
1) 저번처럼 최빈값 같은 억까스러운 건 안나와서 다행이다.
2) 프로그래머스의 단점은 하루 초기화를 0시에 해서 새벽에 진행하면 0시가 될 때까지 다음 일정을 못포는 것이었다.

ㅠ
역시 초기화는 4~6시가 딱 적당한 것 같다.
3) 기록표
