반응형
DoZZang
Do IT
DoZZang
전체 방문자
오늘
어제
  • Programming
    • Git
    • Web
    • 기타
    • Python
      • CodeUp
    • Math
    • Algorithm
    • Baekjoon
    • C,C++
    • Life
      • 독서
      • Just
      • 영화

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DoZZang

Do IT

[C] 백준 10809번 : 알파벳 찾기
Baekjoon

[C] 백준 10809번 : 알파벳 찾기

2023. 1. 15. 14:39
반응형

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

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

코드

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    int main() {
        int count = 0;
        int n[26];  //알파벳 A~Z의 위치를 출력해줄 배열
        char a[100];
        for (int i = 0; i < 26; i++) {
            n[i] = -1;  // 알파벳이 단어에 포함되어 있지 않는 것으로 초기화
        }
        scanf("%s", a);
        while (a[count] != 0) {     //NULL값까지
            int j = 0;
            j = a[count] - 97;          //ASCII코드를 고려
            if (n[j] == -1) {n[j] = count;} // 처음등장하는 위치만 고려 중복 없애기  
            count++;
        }
        for (int i = 0; i < 26; i++) {
            printf("%d ", n[i]);
        }
        return 0;
    }

풀이 전

1. 알파벳이 처음 등장하는 위치로 배열을 초기화 해야 한다.(즉,중복이 없어야 한다.)

2. a~z 라는연속되는 값에 해당하는 위치 인덱스를 출력해야한다.

즉,아스키코드를 사용해야 한다.

(a부터 z까지 97에서 122로 표현된다.)

이 두 개만 고려하면 푸는데 딱히 어려움은 없었다.

소문자만 받아왔기 때문이다. 대문자의 아스키 코드는 또 다르다.

 

풀이 후 

역시 아스키코드에 대해 잘 알고 있어야 하는 문제였다. 아스키 코드에 대해 까먹었다면

https://developer-dz.tistory.com/40를 참고하자.

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

'Baekjoon' 카테고리의 다른 글

[C] 백준 1712번 : 손익분기점  (0) 2023.01.18
[C] 백준 2675번 : 문자열 반복  (0) 2023.01.15
[C] 백준 11720번 : 숫자의 합  (0) 2023.01.14
[C] 백준 10951번 : A + B - 4  (2) 2023.01.13
[C] 백준 9498번 : 시험 성적  (0) 2023.01.11
    'Baekjoon' 카테고리의 다른 글
    • [C] 백준 1712번 : 손익분기점
    • [C] 백준 2675번 : 문자열 반복
    • [C] 백준 11720번 : 숫자의 합
    • [C] 백준 10951번 : A + B - 4
    DoZZang
    DoZZang
    과정은 힘들지만 성장은 즐겁습니다.

    티스토리툴바