프로그래머스 #1 java- LV.1 문제풀이-개념정리
2022/09/27
- 없는 숫자 더하기
1) 문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
2) 제한 사항
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
코드리뷰
class Solution {
public static int solution(int[] numbers) {
int answer = 45;
for(int i = 0; i < numbers.length; i++) {
answer -= numbers[i];
}
return answer;
}
public static void main(String[] args) {
int numberArr = solution(new int[]{1,2,3,4,6,7,8,0});
System.out.println(numberArr);
}
}
1~9까지를 모두 더한 값 45를 int answer로 저장;
-> 0부터 9까지의 숫자 중 일부가 들어있는 배열이 매개변수로 주어지기 때문에
//answer = answer - numbers[i] //numbers 배열의 값들을 answer에서 모두 빼준다.
값들을 모두 빼면 해당 배열에서 없는 수의 총합을 return
개념획득
2022/09/27
- 두 정수의 합
1) 문제 설명
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
- a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
- a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
- a와 b의 대소관계는 정해져있지 않습니다.
a | b | return |
3 | 5 | 12 |
3 | 3 | 3 |
5 | 3 | 12 |
코드리뷰
class Solution {
public long solution(int a, int b) {
long answer = 0;
if (a < b) {
for (int i = a; i <= b; i++) {
answer += i;
}
} else {
for (int i = b; i <= a; i++) {
answer += i;
}
}
return answer;
}
public static void main(String[] args) {
Solution so = new Solution();
System.out.println(so.solution(3,5));
}
}
개념획득
2022/09/27
- 평균 구하기
1) 문제 설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
2) 제한 조건
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 ex)
arr | return |
[1,2,3,4] | 2.5 |
[5,5] | 5 |
코드리뷰
public class Solution8 {
public static double solution(int[] arr) {
double answer = 0; //결과를 저장할 double 변수
for(int i = 0; i < arr.length; i++) { // i < arr의 길이(4);
answer += arr[i]; // answer = answer + arr[i]
}
return answer / arr.length; //answer에 담긴 값 리턴, 나누는 수는 arr의 length만큼 - 10/s.legth
}
public static void main(String[] args) {
double result = solution(new int[]{1,2,3,4});
System.out.print(result);
}
}
값을 소수점까지 표현해야 하니 변수 answer를 double로 선언해준다.
arr {1,2,3,4} 일때로 for문을 살펴보면
arr배열안의 마지막까지 answer값에 더해준다. 1+2+3+4=10
answer 값 10을 return할 때 arr배열의 길이 4를 나눠준다.
그럼 배열 arr의 평균값 2.5가 return된다.
개념획득
for문의 조건식 i <arr.length 는 그 배열의 숫자들을 차례대로 마지막 배열 숫자까지 반복된다.
answer += arr[i] : answer에 arr의 배열 안의 숫자들을 모두 더해준다.
2022/09/27
- 핸드폰 번호 가리기
1)문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
코드리뷰
class Solution9 {
public static String solution(String p) {
String answer = "";
for(int i = 0; i < (p.length()-4); i++) { //s 배열의 맨 뒤 4자리의 수를 제외한 나머지 문자를 *로 바꿔주기 위해
answer += "*"; // 반복문을 돌리면서 비어있는 answer 변수에 *를 넣어준다.
}
answer += p.substring(p.length() -4); //answer = answer+문자열 맨 뒤 4자리
return answer;
}
public static void main(String[] args) {
String p = solution("01033334444");
System.out.print(p);
}
}
개념획득