문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

4013 : 특정 자릿수 포함 여부

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 244 •통과: 86 •만든사람: suakii

4013 : 특정 자릿수 포함 여부

시간 1.000s · 메모리 256MB · 제출 244 · 정답 86

문제 설명

정수 $N$과 한 자리 숫자 $D$가 주어졌을 때, $N$의 자릿수 중 $D$가 포함되어 있는지 판별하고,
포함되어 있다면 YES와 $D$의 등장 횟수를, 포함되어 있지 않다면 NO와 $0$을 공백으로 구분하여 출력하는 프로그램을 작성하시오.

[제약 조건]
• $1 \le N \le 10^9$
• $0 \le D \le 9$
• $N, D$는 정수

입력 설명

첫째 줄에 두 정수 $N$과 $D$가 공백으로 구분되어 주어집니다.

출력 설명

포함 여부에 따라 YES 또는 NO와 등장 횟수를 공백으로 구분하여 출력합니다.

입력 예시
COPY
복사되었습니다!

12321 2

출력 예시
COPY
복사되었습니다!

YES 2

도움

[💡 문제 해결 가이드]
입력받은 수 $N$과 한 자리 숫자 $D$를 정수로 변환하지 않고 문자열 그대로(n, d = input().split()) 다루면 자릿수 비교나 개수 세기를 간편하게 처리할 수 있습니다.

방법 1: for 반복문 활용하기
문자열 $N$의 각 글자를 for 반복문으로 순회하며, $D$와 일치할 때마다 카운트 변수를 $1$씩 증가시킵니다.
n, d = input().split()

cnt = 0
for ch in n:
    if ch == d:
        cnt += 1

if cnt > 0:
    print("YES", cnt)
else:
    print("NO", 0)

방법 2: 문자열의 count() 메서드 활용하기
파이썬 문자열에는 특정 문자의 등장 횟수를 한 번에 세어주는 count() 메서드가 내장되어 있어 훨씬 간단하게 구현할 수 있습니다.
n, d = input().split()

cnt = n.count(d)

if cnt > 0:
    print("YES", cnt)
else:
    print("NO", 0)

• 참고: 만약 정수 형태로 입력받았다면(예: n, d = map(int, input().split())), str(n)과 str(d)로 문자열 변환 후 위와 동일하게 처리할 수 있습니다.
NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘