티스토리 뷰

#  대문자로 바꾸기

 

문제 설명
알파벳으로 이루어진 문자열 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