[TIL] Python3 | join 함수 | 문자열 포맷팅
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
👊🏼 오늘 해결한 문제
[프로그래머스 코딩 기초 트레이닝 - Day02]
- 덧셈식 출력하기
- 문자열 붙여서 출력하기
- 문자열 돌리기
- 홀짝 구분하기
- 문자열 겹쳐쓰기
📝 TIL
- 문자열 돌리기
문제 요약
문자열이 주어질 때, 시계방향으로 90도 출력하자
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181945
제한사항
1 ≤ str의 길이 ≤ 10
입출력 예
입력#1
abcde
출력#1
a
b
c
d
e
설계
- input()으로 입력받기
- for문을 돌려 print
문제 상황 및 개념
1) join 함수를 활용한 짧은 풀이
day01에 for문을 한 번 리마인드 한 덕분에 큰 어려움 없이 풀었다.
풀이를 리뷰하다 더 짧은 'join'을 활용한 풀이가 있다는 것을 확인했고, TIL 한다!
join 함수
- 여러 개의 문자열을 하나로 합치는 역할
- 리스트, 튜플 등 시퀀스 자료형에 있는 문자열 요소들을 연결하여 하나의 문자열로 합쳐줌
- 구조
구분자.join(시퀀스)
# 구분자 : 요소 사이에 삽입될 문자열. ""를 사용하면 각 요소가 붙는다!
# 시퀀스 : 연결할 문자열들이 담긴 리스트, 튜플
# 예시 1. 리스트를 하나의 문자열로 합치기
# 리스트를 하나의 문자열로 합치기
language = ['c', 'python', 'java']
print(', '.join(languages))
# 출력
c, python, java
소스코드
- 홀짝 구분하기
문제 요약
자연수 n이 입력으로 주어졌을 때, 만약 n이 짝수면 "n is oven", 홀수이면 "n is odd" 출력하
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181944
제한사항
1 ≤ n ≤ 1,000
입출력 예
입력#1
100
출력#1
100 is even
설계
- if(나머지값==0) : 짝수 출력
- else : 홀수 출력
문제 상황 및 개념
1) f-string을 활용한 문자열 포맷팅
if문을 통해 수월하게 풀었음!
나는 출력 부분을 아래처럼 출력했는데,
print(a, "is even")
조금 더 간단한 방법이 없을까? 하는 의문이 들어 찾아봤다
f-string
- 문자열 안에 변수, 표현식을 직접 삽입해 가독성 높은 문자열을 만드는 기능
- 문자열 포맷팅(문자열 안에 변수, 값을 넣어 원하는 형태의 문자열을 만드는 작업), 로그 메세지 등에 활용
- 구조
f"문자열 {변수 또는 표현식}"
# 예시 1. 변수 삽입
food = "Chicken"
n = "2"
str = f"나는 {food}를 {n}개까지 먹을 수 있어"
print(str)
#출력
나는 Chicken을 2개까지 먹을 수 있어
# 예시 2. 표현식 계산
result = f"5 + 4 = {5+4}"
print(result)
# 출력
5 + 4 = 9
# 예시 3. 포맷 지정
pi = 3.14159
form = f"원주율은 {pi.2f}입니다"
print(form)
# 출력
원주율은 3.14입니다
소스코드
🚀 새로 배운 것
- f-string을 사용하면 보다 유연하고, 가독성이 좋은 코드 작성이 가능해 문자열에서 많이 쓰인다
- str[:n], str[0:n]과 같은 문자열 인덱싱과 슬라이싱을 통해 문자열 출력 길이를 조정할 수 있다
😺 느낀점
- f-string, join과 같은 문자열을 다루는 함수들을 활용해 보다 자유로운 작성이 가능하다
- 내 풀이 말고 다른 사람들의 풀이를 비교하며 더 나은 방법은 없는지 항상 확인하자!