Blue___
코딩배우는 학생🌎
Blue___
전체 방문자
오늘
어제
  • 코딩배우는 학생🧀 (242)
    • Algorithms (145)
      • BOJ[Java] (107)
      • Programmers[Java] (32)
      • Coding_Contest (3)
    • Web (22)
      • .NET Core C# (2)
      • Java (1)
      • Oracle SQL (7)
      • Web-ProJect (3)
      • Error처리 (1)
      • Web지식 (4)
      • Javascript (1)
      • Vue (3)
    • Git (4)
    • Java_beginner(Repl.it) (55)
      • Auto-Graded-Course(AP CS A) (54)
    • 프로젝트 직딩일기 (3)
    • Hanyang_Assignment (0)
    • 이모저모 (4)
      • 잡담 (1)
      • 2021 오픈소스 컨트리뷰터 아카데미 (1)
      • DDD - 6기! (1)
    • 북리뷰 (1)
      • 리팩토링 2판 (1)
      • 클린코드 (0)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸MBC개발_투표 2022
  • 🍭MBC_APP

공지사항

인기 글

태그

  • 레플릿
  • 자바
  • 코딩
  • 프로그래밍
  • auto-graded course
  • 코딩배우는 학생
  • 코딩배우는학생
  • 백준
  • java basic
  • Java
  • coding
  • algorithm
  • REPL
  • 알고리즘
  • 프로그래머스
  • repl.it
  • programmers
  • AP CS A
  • Java tutorial
  • Bakjoon

최근 댓글

최근 글

티스토리

hELLO
Blue___

코딩배우는 학생🌎

[백준/2941번] 크로아티아 알파벳 [Java]
Algorithms/BOJ[Java]

[백준/2941번] 크로아티아 알파벳 [Java]

2019. 12. 2. 13:54

문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.

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

예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.

입력

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

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

출력

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

 


풀이

크로아티아 알파벳을 배열을 통해서 직접 입력해준 뒤, contain()함수를 통해서 찾고자 하는 값을 찾아 개수를 세주면 되는 문제이다. 어떻게 개수를 세줄까 생각하다가, 크로아티아 알파벳이 발견되면 그것을 공백으로 치환한뒤, 문자열의 길이를 세주면 될 것 같았다. 그래서 contain()함수를 이용해서 크로아티아 알파벳 유무를 판단한뒤, 발견되면 공백으로 replaceAll()함수를 이용해서 치환해주었다.  이후에 길이를  출력해주면 그대로 정답! ㅇㅅㅇ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.*;
 
 
class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String croa=sc.nextLine().trim();
    sc.close();
    String[] arr= {"c=","c-","dz=","d-","lj","nj","s=","z="};
    int result=0;
    
    for(int i=0;i<arr.length;i++) {
        if(croa.contains(arr[i])) {
            croa=croa.replaceAll(arr[i]," ");
            }
        }   
    System.out.println(croa.length());
  }  
  }
 
 

 

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

 

2941번: 크로아티아 알파벳

문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고,

www.acmicpc.net

 

반응형
저작자표시 (새창열림)

'Algorithms > BOJ[Java]' 카테고리의 다른 글

[백준/3460번] 이진수 [Java]  (0) 2019.12.02
[백준/10828번] 스택(Stack) [Java]  (0) 2019.12.02
[백준/11399번] ATM [Java]  (0) 2019.12.02
[백준/2751번] 수 정렬하기 2 [Java]  (0) 2019.12.01
[백준/1152번] 단어의 개수 [Java]  (0) 2019.12.01
    'Algorithms/BOJ[Java]' 카테고리의 다른 글
    • [백준/3460번] 이진수 [Java]
    • [백준/10828번] 스택(Stack) [Java]
    • [백준/11399번] ATM [Java]
    • [백준/2751번] 수 정렬하기 2 [Java]
    Blue___
    Blue___
    완전 연소한 불은 재를 남기지않는다 : 코딩배우는학생 🌎

    티스토리툴바