4013 : 특정 자릿수 포함 여부
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 244
•통과: 86
•만든사람: suakii
문제 설명
정수 $N$과 한 자리 숫자 $D$가 주어졌을 때, $N$의 자릿수 중 $D$가 포함되어 있는지 판별하고,
포함되어 있다면
[제약 조건]
• $1 \le N \le 10^9$
• $0 \le D \le 9$
• $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$를 정수로 변환하지 않고 문자열 그대로(
방법 1:
문자열 $N$의 각 글자를
방법 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)로 문자열 변환 후 위와 동일하게 처리할 수 있습니다.