Post
나는 친구가 적다(Small) (백준 16171번) | Gihun Son

나는 친구가 적다(Small) (백준 16171번)

💡 **Check Point !

( 해당사항 ✓체크 )

  1. 막힘 없이 수월하게 풀린 문제인가? ✓

  2. 1시간이내로 풀렸던 문제인가?

  3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?

  4. 시간을 써도 도무지 풀 수 없는 문제인가?

  5. 솔루션을 찾아봤는가?


난이도 체감

  1. 최상

  2. 하✓


이해도

  1. 완벽히 이해✓

  2. 다소 헷갈리는 부분들이 있음

  3. 이해 못함

문제

친구가 적은 성민이는 수업에 결석해도 시험이나 과제에 대한 정보를 제대로 얻을 수 없었다. F 학점을 받을 위기까지 아슬아슬하게 결석일 수를 유지하던 성민이는, 어느 날 갑자기 영문도 모른 채 쪽지시험을 보게 되었다!

갑작스러운 쪽지 시험으로 마음이 급해진 성민이는 매직아이를 사용해 벼락치기를 하기로 한다.

성민이가 듣는 과목의 교과서는, 알파벳 소문자(a-z)와 알파벳 대문자(A-Z)로만 이루어져 있다. 성민이가 교과서에서 찾고자 하는 키워드도 역시 알파벳 소문자와 대문자로만 이루어져 있다. 하지만, 성민이에겐 큰 문제가 생겼다. 결석한 날의 수업 내용을 친구에게 빌려 필기를 하던 중, 교과서에 숫자(0-9)를 적어버린 것이다.

키워드를 찾기 힘들어 패닉에 빠진 성민이는 몇 안 되는 친구인 당신에게 도움을 요청했다. 성민이를 도와, 교과서에서 성민이가 찾고자 하는 키워드의 존재 여부를 알려주자.

Untitled

Untitled 1

나의 풀이

1
2
3
4
5
6
7
8
9
10
S=input()
K=input()
origin=''
for s in S:
    if 'a'<=s<='z' or 'A'<=s<='Z':
        origin+=s
if K in origin:
    print(1)
else:
    print(0)
  • 여기서 주요했던 것은 문자를 통해 범위를 지정할 수 있다는 점이다. 'a'<=s<='z' 등의 연산은 문자가 자동으로 ASCII코드로 변환되어 비교한다. 따라서 해당 범위에 없는, 즉 알파벳이 아닌 숫자를 빼고 문자열을 구성할 수 있다.

추가적인 문법

  • isalpha() : 알파벳인지 확인
1
2
3
4
5
6
7
a = '1q2w3e4r'
b = '1234'
c = "qwer"

print(a.isdigit()) #False -> 숫자와 섞임
print(b.isdigit()) #True
print(c.isdigit()) #False
  • isdigit() : 숫자인지 확인
1
2
3
4
5
6
7
a = '1q2w3e4r'
b = '1234'
c = "qwer"

print(a.isalpha()) #False -> 알파벳과 섞임
print(b.isalpha()) #False
print(c.isalpha()) #True
  • isalnum() : 알파벳 or 숫자인지 확인
1
2
3
4
5
6
7
8
9
10
11
a = '1q2w3e4r'
b = '1234'
c = "qwer"
d = "****"
e = '1q2/w3e4r'

print(a.isalnum()) #True
print(b.isalnum()) #True
print(c.isalnum()) #True
print(d.isalnum()) #False -> 특수문자는 false
print(e.isalnum()) #False -> 특수문자와 섞임

출처: https://velog.io/@jiminnote/Python-알파벳숫자인지-확인isalpha-isdigit-isalnum

This post is licensed under CC BY 4.0 by the author.