반응형

문제 링크

https://www.acmicpc.net/problem/2941

 

문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다.

따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.

크로아티아 알파벳 변경
č c=
ć c-
dz=
đ d-
lj lj
nj nj
š s=
ž z=

 

예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다.

단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다.

위 목록에 없는 알파벳은 한 글자씩 센다.

 

입력

첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

 

출력

입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

 

 

코드

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        /*
            2941번: 크로아티아 알파벳
            필요한것

            - 크로아티아 대체문구들 정의
            - 문자열 입력받기
            - 크로아티아 알파벳 일치하면 *로 대체시키기
            - 길이를 출력
         */

        String[] croatia = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};

        String input = sc.nextLine();

        for (String alphabet : croatia) {
            input = input.replace(alphabet, "*");
        }

        System.out.println(input.length());


        sc.close();
    }


}
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 11720] [Python] 숫자의 합  (0) 2024.04.10
[백준 11654] [Python] 아스키 코드  (0) 2024.04.10
[백준 9086] [Python] 문자열  (0) 2024.04.10
[백준 2743] [Python] 단어 길이 재기  (0) 2024.04.10
[백준 27866] [Python]  (0) 2024.04.10
반응형

원래 별찍기도 힘들어했는데 코드트리 덕분에 별찍기는 감을 잡았다!!!

프로그래밍 기초부분 06 다중 반복문 - 행에 대해 대칭인 별 출력 완료

 

문제 - 별표 출력하기 5

https://www.codetree.ai/missions/4/problems/print-star-5/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();  // 입력받은 n값

        for (int i = n; i >= 1; i--) {  // n부터 1까지 반복
            for (int j = 0; j < i; j++) {
                for (int k = 0; k < i; k++) {
                    System.out.print("*");  // 별 출력
                }
                if (j < i - 1) {
                    System.out.print(" ");  // 각 패턴 사이의 공백 출력
                }
            }
            System.out.println();  // 줄 바꿈
        }

        sc.close();
    }
}

 

반응형
반응형

https://www.codetree.ai/missions/4/problems/print-star-5/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        for (int i = n; i >= 1; i--) {  // n부터 1까지 반복
            for (int j = 0; j < i; j++) {
                for (int k = 0; k < i; k++) {
                    System.out.print("*");  // 별 출력
                }
                if (j < i - 1) {
                    System.out.print(" ");  // 각 패턴 사이의 공백 출력
                }
            }
            System.out.println();  // 줄 바꿈
        }

        sc.close();
    }
}

 

설명

for (int i = n; i >= 1; i--) {

- 이 반복문은 n부터 1까지 역순으로 반복합니다.

- i는 현재 줄에서 출력할 별의 개수와 반복 패턴의 수를 결정합니다.

- 예를 들어, n=4라면 첫 번째 줄에서는 4개의 패턴이 있고, 각 패턴에 4개의 별이 있습니다.

 

for (int j = 0; j < i; j++) {

- 이 반복문은 각 줄에서 몇 개의 패턴이 반복될지 결정합니다.

- i가 4일 때는 4개의 패턴이 출력되며, i가 3일 때는 3개의 패턴이 출력됩니다.

 

for (int k = 0; k < i; k++) {
    System.out.print("*");
}

- 이 반복문은 각 패턴에서 몇 개의 *가 출력될지를 결정합니다.

- i가 4이면 ****, i가 3이면 ***가 출력됩니다.

 

if (j < i - 1) {
    System.out.print(" ");
}

- 패턴과 패턴 사이에 공백을 추가합니다.

- j < i - 1 조건을 통해 마지막 패턴 뒤에는 공백이 출력되지 않도록 합니다.

- 예를 들어, i가 4일 때 **** **** **** ****로 출력되어야 하므로, 공백은 3개만 추가됩니다.

 

System.out.println();

- 각 줄의 출력이 끝나면 다음 줄로 넘어갑니다.

- 이 줄 바꿈이 없으면 모든 별이 한 줄에 연속으로 출력됩니다.

 

 

반응형

+ Recent posts