코드트리: 2개 이상의 알파벳

2024. 5. 11. 17:27·PS

 

 


 

문제

소문자 알파벳으로만 이루어진 문자열 A가 주어졌을 때, 문자열 A를 이루고 있는 서로 다른 알파벳의 수가 2개 이상인지를 판단하는 프로그램을 작성해보세요.

 

 

 

 

실행 결과

 

 

 

 

 

코드(c++)

#include <iostream>
using namespace std;

bool isSameAlpabetinString(string str) {
  bool alpabets[26] = {false};
  int count = 0;
  for (char ch : str) {
    int i = ch - 'a';
    if (!alpabets[i]) {
      alpabets[i] = true;
      count++;
      if (count >= 2)
        return true;
    }
  }
  return false;
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);

  string word;
  cin >> word;

  if (isSameAlpabetinString(word))
    cout << "Yes";
  else
    cout << "No";
  return 0;
}

 

 

 

 

코드 설명

isSameAlpabetinString 함수를 정의하여, 문자열에 2개 이상의 알파벳이 있는지 확인한다.

 

먼저 범위 기반 for 문을 이용하여 길이가 26인 알파벳 배열을 돈다.

인덱스 i는 ch에서 a를 빼므로, 아스키코드 간 뺄셈을 통해 알파벳 배열의 해당 문자 자리에 저장된다.

ex. ch가 a일 경우, 빼면 0이므로 배열의 첫번째 자리(a, b,c...중 a 자리), 즉 alphabets[0] 자리에 저장된다.

 

저장 시, 만약 해당 문자 자리가 false라면 true로 바꿔주고 count를 증가시킨다.

반대로 같은 문자열이 이미 저장되어 있다면 if문을 통과하지 못하므로 count가 증가하지 않을 것이다.

(=같은 문자가 여러번 나와도 한 번만 저장하기 위해 이렇게 구현한다.)

최종적으로 count가 2개 이상인 문자가 있다면 true를 리턴한다.

 


 

문제 출처:

 

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

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

www.codetree.ai

 

저작자표시

'PS' 카테고리의 다른 글

코드트리: 큰 숫자 자리수의 합  (0) 2024.05.28
코드트리: 재귀함수의 꽃  (0) 2024.05.18
코드트리: 함수를 이용한 연속부분수열 여부 판단하기  (0) 2024.05.06
백준 2869번: 달팽이는 올라가고 싶다  (0) 2024.05.03
백준 1259번: 팰린드롬수  (0) 2024.04.29
'PS' 카테고리의 다른 글
  • 코드트리: 큰 숫자 자리수의 합
  • 코드트리: 재귀함수의 꽃
  • 코드트리: 함수를 이용한 연속부분수열 여부 판단하기
  • 백준 2869번: 달팽이는 올라가고 싶다
abyss-s
abyss-s
프론트엔드 공부합니다.
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (12)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (3)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    생활코딩
    그리디
    OS
    운영체제
    BAEKJOON
    DP
    통계학
    코드트리
    React
    JavaScript
    C++
    Python
    자바스크립트
    BFS
    네트워크
    Java
    자바기반응용프로그래밍
    백준
    파이썬
    github
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
코드트리: 2개 이상의 알파벳
상단으로

티스토리툴바