*Programmers 코딩테스트 기초 트레이닝 캘린더의 순서를 참고합니다
*소스 코드는 다음 깃허브에 날짜별로 올라옵니다 - https://github.com/s0ooo0k/Algorithm_Study
GitHub - s0ooo0k/Algorithm_Study: Algorithm Study 문제 및 풀이
Algorithm Study 문제 및 풀이. Contribute to s0ooo0k/Algorithm_Study development by creating an account on GitHub.
github.com
👊🏼 오늘 해결한 문제
[프로그래머스 코딩 기초 트레이닝 - Day 01]
- 문자열 출력하기
- a와 b 출력하기
- 문자열 반복해서 출력하기
- 특수문자 출력하기
📝 TIL
- 대소문자 바꿔 출력하기
제한사항
- 1 ≤ str < 20 (str은 알파벳으로 이루어진 문자열)
입출력 예
입력#1
aBcDeFg
출력#1
AbCdEfG
설계
- input()을 통해 문자열 입력받기
- for문을 통해 문자열 첫 단어부터 끝단어까지 반복하면서
- if문으로 대문자인지 checking 후 바꿔서 출력
문제 상황 및 개념
1) for문 혼동
설계 2. for문의 변수와 in 뒤의 속성이 c랑 헷갈려 in 조건 파트를 len(str), int 형식으로 작성함
for문은 그냥 당연히.. 기본 중의 기본 중의 기본! 어떻게 헷갈려😱
파이썬 for문 기본 구조
for [변수] in [문자열, 리스트, 튜플]:
[반복 내용]
# 예시 1. 리스트 반복
# 배열 출력
arr = [0, 1, 2, 3, 4]
for i in arr:
print(i)
# 출력
1
2
3
4
5
# 예시 2. 문자열 반복
# str 출력하기
str = 'hello"
for i in str:
print(i)
# 출력
h
e
l
l
o
2) 대소문자 판별 함수
설계 3. 과정에서 대문자 checking 방법을 몰랐다!
파이썬 대소문자 관련 함수(upper, lower, isupper, islower)
- 변환 함수
- str.upper()
- 모든 소문자를 대문자로 변환한다.
- 예: "hello".upper() → "HELLO"
- str.lower()
- 모든 대문자를 소문자로 변환한다.
- 예: "HELLO".lower() → "hello"
- str.swapcase()
- 대문자는 소문자로, 소문자는 대문자로 변환한다.
- 예: "Hello".swapcase() → "hELLO"
- str.upper()
- 판별 함수
- str.isupper()
- 모두 대문자로 이루어져있는지 확인한다
- 예: "HELLO".isupper() → True
- str.islower()
- 모두 소문자로 이루어졌는지 확인한다
- 예: "hello".islower() → True
- str.isupper()
이외에도 capitalize(문자열의 첫 글자를 대문자로 변환), title(각 단어 첫 글자를 대문자로 변환) 등이 있다.
소스코드
풀이 1
str = input()
for i in str:
if i.isupper() == True:
print(i.lower(), end="")
else:
print(i.upper(), end="")
풀이 2
print(input().swapcase())
🚀 새로 배운 것
- 'isupper', 'islower'과 같은 판별 함수를 통해 대소문자를 판별할 수 있다!
- python의 for문은 [리스트, 튜플, 문자열] 형태이기에, 문자열을 그대로 범위에 넣는다
😺 느낀점
- 문자 반복을 잘 활용하자. 문자열을 사용하는 알고리즘 문제들이 많다
- 파이썬은 내장함수가 많다! 함수를 잘 활용하면 짧고 간결한 코딩이 가능하다.
거의 n년만에 하는 파이썬 및 알고리즘 공부.
시작한 건 오래 됐지만 한 번도 제대로 공부해본 적이 없는 것 같은 애증의 섹션...
코딩테스트 대비 겸 잊고 있던 파이썬을 다시 시작하고, 매일매일 기록하기로 했다!
정말 기초부터 놓치고 있던 개념들을 체크하고 쌓아올리자
'TIL > 알고리즘' 카테고리의 다른 글
[JAVA] 프로그래머스 | 81301 숫자 문자열과 영단어 (0) | 2025.04.01 |
---|---|
[JAVA] 프로그래머스 | 181945 문자열 돌리기 (0) | 2025.04.01 |
[CS] 시간복잡도와 공간복잡도 (0) | 2025.03.31 |
[JAVA] 181934 조건 문자열 | 문자열 메서드 | split() (0) | 2025.02.06 |
[TIL] Python3 | join 함수 | 문자열 포맷팅 (4) | 2025.01.23 |