일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 우선 순위 큐
- lazy propagation
- tensorflow
- 플로이드 와샬
- back propagation
- object detection
- 알고리즘
- 이분 탐색
- 자바스크립트
- 조합론
- 백트래킹
- Overfitting
- dropout
- pytorch
- dfs
- 2023
- 회고록
- DP
- 가끔은_말로
- NEXT
- 가끔은 말로
- 세그먼트 트리
- 다익스트라
- 문자열
- 너비 우선 탐색
- c++
- 분할 정복
- BFS
- 미래는_현재와_과거로
- 크루스칼
Archives
- Today
- Total
Doby's Lab
[Python] 백준 1264번: 모음의 개수, if ~ in, for 문자 in 문자열 본문
https://www.acmicpc.net/problem/1264
이번 문제에서는 2가지 문법을 배울 수 있었다.
- if ~ in
- for 문자 in 문자열
우선 내가 짠 코드(정답)부터 보자
while True:
s = input()
if s == "#":
break
#print(s)
cnt = 0
for i in range(0, len(s)):
if (s[i] == 'a' or s[i] == 'e' or s[i] == 'i'
or s[i] == 'o' or s[i] == 'u' or s[i] == 'A'
or s[i] == 'E' or s[i] == 'I' or s[i] == 'O'
or s[i] == 'U'):
cnt += 1
print(cnt)
if문이 상당히 길어서 비효율적으로 보여서 다른 사람들도 이렇게 길게 짰을까 싶어서 구글링 해보았다.
if ~ in
if c in 'aeiouAEIOU':
4줄에 걸쳤던 if문을 한 줄로 정리할 수 있었다.
+ c는 문자형 변수
+ 파이썬은 문자열을 '(작은따옴표)로도 묶을 수 있음
>> c라는 문자형 변수가 저 문자열 중 원소와 같은 것이 있냐고 묻는 문법이다.
>> C++에 비해 간단명료하게 나타낼 수 있었다.
for 문자 in 문자열
for c in s:
len() 함수를 통하여 문자열의 길이를 구하고, for의 범위를 알려준 뒤 s[i]를 통해 문자를 반환하여 조건을 비교했었는데
그럴 필요 없었다.
in 다음에 오는 변수에 따라 c가 타입이 정해져서 간단명료하게 표현할 수 있었다.
이는 문자열뿐만 아니라 아직 배우지 않은 파이썬 자료구조(tuple, list, dictionary)도 마찬가지다.
뿐만 아니라 더 얻을 수 있었던 지식은
- 파이썬은 들여 쓰기에 따라 코드 블록이 구성된다.
- 논리 연산자는 C++(&&, ||)과 달리 and, or 이러한 방법으로 표현된다.
[AC 코드]
while True:
s = input()
if s == '#':
break
cnt = 0
for c in s:
if c in 'aeiouAEIOU':
cnt += 1
print(cnt)
728x90
'Code about AI > Python' 카테고리의 다른 글
코드업 Python 기초 100제 정리 (0) | 2022.06.26 |
---|---|
[파이썬] 백준 1350번: 진짜 공간, 리스트(List) (0) | 2022.03.01 |
[Python] 백준 5543번: 상근날드, 최솟값 함수 (0) | 2022.02.27 |
[Python] 백준 2739번: 구구단, 정수형 변수 출력 (0) | 2022.02.27 |
[Python] 파이썬 while문, for문 (0) | 2022.02.27 |