티스토리 뷰
# 대문자로 바꾸기
문제 설명
알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 대문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ myString의 길이 ≤ 100,000
myString은 알파벳으로 이루어진 문자열입니다.
입출력 예
abCdEfG | ABCDEFG |
AAA | AAA |
나의 답변
class Solution {
public String solution(String myString) {
String answer = "";
answer = myString.toUpperCase();
return answer;
}
}
# 소문자로 바꾸기
문제 설명
알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 소문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ myString의 길이 ≤ 100,000
myString은 알파벳으로 이루어진 문자열입니다.
입출력 예
abCdEfG | ancdefg |
aaa | aaa |
나의 답변
class Solution {
public String solution(String myString) {
String answer = "";
answer = myString.toLowerCase();
return answer;
}
}
# n보다 커질 때까지 더하기
문제 설명
정수 배열 numbers와 정수 n이 매개변수로 주어집니다. numbers의 원소를 앞에서부터 하나씩 더하다가 그 합이 n보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ numbers의 길이 ≤ 100
1 ≤ numbers의 원소 ≤ 100
0 ≤ n < numbers의 모든 원소의 합
입출력 예
numbers | n | result |
[34, 5, 71, 29, 100, 34] | 123 | 139 |
[58, 44, 27, 10, 100] | 139 | 239 |
나의 답변
class Solution {
public int solution(int[] numbers, int n) {
int answer = 0;
for(int i=0; i<numbers.length; i++){
if(answer<=n){
answer += numbers[i];
}
}
return answer;
}
}
# 9로 나눈 나머지
문제 설명
음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다.이 사실을 이용하여 음이 아닌 정수가 문자열 number로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요.
제한사항
1 ≤ number의 길이 ≤ 100,000
number의 원소는 숫자로만 이루어져 있습니다.
number는 정수 0이 아니라면 숫자 '0'으로 시작하지 않습니다.
입출력 예 설명
입출력 예 #1
예제 1번의 number는 123으로 각 자리 숫자의 합은 6입니다. 6을 9로 나눈 나머지는 6이고, 실제로 123 = 9 × 13 + 6입니다. 따라서 6을 return 합니다.
입출력 예 #2
예제 2번의 number는 78720646226947352489으로 각자리 숫자의 합은 101입니다. 101을 9로 나눈 나머지는 2이고, 실제로 78720646226947352489 = 9 × 8746738469660816943 + 2입니다. 따라서 2를 return 합니다.
입출력 예
numbers | result |
"123" | 6 |
"78720646226947352489" | 2 |
나의 답변
class Solution {
public int solution(String number) {
int answer = 0;
for(int i=0; i<number.length(); i++){
answer += number.charAt(i);
}
answer = answer%9;
return answer;
}
}
위의 답변을 작성하면 테스트2번에서 틀린 값을 반환한다.
그 이유는 number.charAt(i)가 char 타입으로 반환되기 때문이다.
직접 int에 더하면 ASCII 값이 더해지게 되는데 예를 들어, '1'의 ASCII 값은 49이고 '2'의 ASCII 값은 50이다. 따라서 각 문자에 대해 이를 숫자 값으로 변환해야한다.
이를 해결하려면 char 값을 int 값으로 변환하는 과정이 필요하다.
정답
class Solution {
public int solution(String number) {
int answer = 0;
for(int i=0; i<number.length(); i++){
answer += Character.getNumericValue(number.charAt(i));
}
answer = answer%9;
return answer;
}
}
첫번째 답변에서 Character.getNumericValue 메서드를 추가하여 사용했다.
그러므로 각 문자를 숫자 값으로 변환할 수 있다.
# n번째 원소부터
문제 설명
정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 30
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ num_list의 길이
입출력 예 설명
입출력 예 #1
[2, 1, 6]의 세 번째 원소부터 마지막 원소까지의 모든 원소는 [6]입니다.
입출력 예 #2
[5, 2, 1, 7, 5]의 두 번째 원소부터 마지막 원소까지의 모든 원소는 [2, 1, 7, 5]입니다.
입출력 예
num_list | n | result |
[2, 1, 6] | 3 | [6] |
[5, 2, 1, 7, 5] | 2 | [2, 1, 7, 5] |
나의 답변
class Solution {
public int[] solution(int[] num_list, int n) {
int[] answer = new int[num_list.length - n + 1];
for(int i = 0; i < answer.length; i++){
answer[i] = num_list[n-1+i];
}
return answer;
}
}
'코딩 > 프로그래머스' 카테고리의 다른 글
코딩테스트 입문 #65 ~ #70 (0) | 2024.06.12 |
---|---|
[SQL - SUM,MAX,MIN] 2 (1) | 2024.06.11 |
코딩 기초 트레이닝 #56 ~ #60 (1) | 2024.06.10 |
SQL 물고기 문제 모음 (0) | 2024.06.07 |
코딩 기초 트레이닝 #51 ~ #55 (0) | 2024.06.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday