누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 안드로이드 디자인
  • 알고리즘 조합
  • 안드로이드
  • 코틀린 runBlocking
  • 백준 자바 수열
  • Room Migration
  • 클라우드
  • 자바 Priority Queue
  • 백준 자바
  • 코틀린
  • 백준 자바 누적합
  • 백준 자바 다이나믹 프로그래밍
  • 자료구조
  • 코틀린 인 액션
  • 백준 자바 2292번
  • 백준 자바 벌집
  • 백준 자바 2559번
  • Room version 올리기
  • 클라우드 컴퓨팅
  • 백준 자바 정렬

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨

어미새의 개발일지

백준/JAVA

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

2023. 1. 18. 09:58
  • 크로아티아 알파벳의 개수를 세는 문제

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

1. 문제

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

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

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

2. 문제 접근

  • 문자열을 입력받는다.
  • 정수형 변수에 문자열의 길이를 저장한다.
  • 문자열의 char를 하나씩 접근하면서 다음 조건이 있을 경우 정수형 변수의 값을 1씩 뺀다.
    1) '-'이고 앞의 char가 'c' 혹은 'd'일 경우
    2) '='이고 앞의 char가 'c' 혹은 'z' 혹은 's' 혹은 'z'인 경우
    3) 2)번의 'z'인 경우 중 하나 더 앞의 char가 'd'인 경우

3. 코드

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class b_2941 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        int word = input.length();
        for(int i=1;i<input.length();i++) {
            if(input.charAt(i)=='-' && (input.charAt(i-1)=='c' || input.charAt(i-1)=='d')) {
                word--;
            }
            else if(input.charAt(i)=='=' && (input.charAt(i-1)=='c' || input.charAt(i-1)=='z' || input.charAt(i-1)=='s')) {
                if(i>=2 && input.charAt(i-2)=='d' && input.charAt(i-1)=='z') {
                    word--;
                }
                word--;
            }
            else if(input.charAt(i)=='j' && (input.charAt(i-1)=='l' || input.charAt(i-1)=='n')) {
                word--;
            }
        }
        System.out.println(word);
    }
}

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

[백준/JAVA] 10757번 큰 수 A+B  (0) 2023.01.19
[백준/JAVA] 1316번 그룹 단어 체커  (2) 2023.01.19
[백준/JAVA] 2908번 상수  (0) 2023.01.18
[백준/JAVA] 단계별로 풀어보기(5단계) 코드 모음  (0) 2023.01.18
[백준/JAVA] 단계별로 풀어보기(4단계) 코드 모음  (0) 2023.01.18
    '백준/JAVA' 카테고리의 다른 글
    • [백준/JAVA] 10757번 큰 수 A+B
    • [백준/JAVA] 1316번 그룹 단어 체커
    • [백준/JAVA] 2908번 상수
    • [백준/JAVA] 단계별로 풀어보기(5단계) 코드 모음
    누룽지맛치킨
    누룽지맛치킨

    티스토리툴바