티스토리 뷰

#  직각삼각형 출력하기

 

문제 설명
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.


제한사항
1 ≤ n ≤ 10


입출력 예 설명

입출력 예 #1
n이 3이므로 첫째 줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출력합니다.

입출력 예

입력 #1
3
출력 #1
*
**
***

 
 

나의 답변

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 함수를 완성해보세요.



제한사항
1 ≤ num_list의 길이 ≤ 100
0 ≤ num_list의 원소 ≤ 1,000




입출력 예 설명

입출력 예 #1
[1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.
입출력 예 #2
[1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.

 
 

나의 답변

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[2];
        int count1 = 0;
        int count2 = 0;
        
        for(int i=0; i<num_list.length; i++){
            if(num_list[i]%2==0){
                count1++;
            }
            else{
                count2++;
            }
        }
        answer[0] = count1;
        answer[1] = count2;
        
        return answer;
    }
}

 

 

 

 

 

 

 

 

 

 

 

#  문자 반복 출력하기

 

문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.



제한사항
2 ≤ my_string 길이 ≤ 5
2 ≤ n ≤ 10
"my_string"은 영어 대소문자로 이루어져 있습니다.




입출력 예 설명

입출력 예 #1
"hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.

 
 

나의 답변

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        for(int i=0; i<my_string.length(); i++){
            for(int j=0; j<n; j++){
                answer += my_string.charAt(i);
            }
        }
        return answer;
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

#  짝수의 합

 

문제 설명
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.



제한사항
0 < n ≤ 1000




입출력 예 설명

입출력 예 #1
n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.
입출력 예 #2
n이 4이므로 2 + 4 = 6을 return 합니다.

 
 

나의 답변

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i=1; i<=n; i++){
            if(i%2==0){
                answer += i;
            }
        }
        return answer;
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

#  각도기

 

문제 설명
각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
예각 : 0 < angle < 90
직각 : angle = 90
둔각 : 90 < angle < 180
평각 : angle = 180


제한사항
0 < angle ≤ 180
angle은 정수입니다.



입출력 예 설명

입출력 예 #1
angle이 70이므로 예각입니다. 따라서 1을 return합니다.
입출력 예 #2
angle이 91이므로 둔각입니다. 따라서 3을 return합니다.
입출력 예 #2
angle이 180이므로 평각입니다. 따라서 4를 return합니다.

 
 

나의 답변

class Solution {
    public int solution(int angle) {
        int answer = 0;
        
        if(0<angle && angle<90){
            answer = 1;
        }
        else if(angle==90){
            answer = 2;
        }
        else if(90<angle && angle<180){
            answer = 3;
        }
        else if(angle==180){
            answer = 4;
        }
        return answer;
    }
}

 

 

자바에서는 0<angle<90과 같은 논리는 사용할 수 없으므로 0<angle && angle<90 과 같이 작성한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

#  특정문자 제거하기

 

문제 설명
문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.



제한사항
1 ≤ my_string의 길이 ≤ 100
letter은 길이가 1인 영문자입니다.
my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
대문자와 소문자를 구분합니다.




입출력 예 설명
입출력 예 #1
"abcdef" 에서 "f"를 제거한 "abcde"를 return합니다.
입출력 예 #2
"BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다.

 
 

나의 답변

class Solution {
    public String solution(String my_string, String letter) {
        String answer = "";
        answer = my_string.replace(letter,"");
        return answer;
    }
}

 

 

 

 

 

replace를 사용하지 않는 방법

class Solution {
    public String solution(String my_string, String letter) {
        StringBuilder sb = new StringBuilder();
        
        for (int i = 0; i < my_string.length(); i++) {
            char currentChar = my_string.charAt(i);
            if (currentChar != letter.charAt(0)) {
                sb.append(currentChar);
            }
        }
        
        return sb.toString();
    }
}

 

이 방법은 다음과 같이 동작한다.

1. StringBuilder sb = new StringBuilder();:

StringBuilder 객체를 생성하여 결과 문자열을 저장할 준비를 한다.


2. for (int i = 0; i < my_string.length(); i++) {:

문자열의 각 문자를 순회하는 반복문이다.


3. char currentChar = my_string.charAt(i);:

현재 인덱스의 문자를 가져온다.


4. if (currentChar != letter.charAt(0)) {:

현재 문자가 letter와 같지 않으면 StringBuilder에 추가한다.


5. sb.append(currentChar);:

현재 문자를 StringBuilder에 추가한다.


6. return sb.toString();:

StringBuilder에 저장된 문자열을 반환한다.
이 방법은 replace 메서드를 사용하지 않고 직접 문자열을 구성하는 방법이다.





'코딩 > 프로그래머스' 카테고리의 다른 글

코딩 기초 트레이닝 #76 ~ #80  (1) 2024.06.17
[SQL - SELECT] 2  (1) 2024.06.14
코딩테스트 입문 #65 ~ #70  (0) 2024.06.12
[SQL - SUM,MAX,MIN] 2  (1) 2024.06.11
코딩 기초 트레이닝 #61 ~ #65  (1) 2024.06.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday