TIL/알고리즘

[TIL] Python3 | join 함수 | 문자열 포맷팅

쑤키다요 2025. 1. 23. 21:33

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

 

설계

  1. input()으로 입력받기
  2. for문을 돌려 print

 

문제 상황 및 개념

 

1) join 함수를 활용한 짧은 풀이

day01에 for문을 한 번 리마인드 한 덕분에 큰 어려움 없이 풀었다.

풀이를 리뷰하다 더 짧은 'join'을 활용한 풀이가 있다는 것을 확인했고, TIL 한다!

 

join  함수

- 여러 개의 문자열을 하나로 합치는 역할

- 리스트, 튜플 등 시퀀스 자료형에 있는 문자열 요소들을 연결하여 하나의 문자열로 합쳐줌

- 구조

구분자.join(시퀀스)

# 구분자 : 요소 사이에 삽입될 문자열. ""를 사용하면 각 요소가 붙는다!
# 시퀀스 : 연결할 문자열들이 담긴 리스트, 튜플

 

# 예시 1. 리스트를 하나의 문자열로 합치기

# 리스트를 하나의 문자열로 합치기
language = ['c', 'python', 'java']
print(', '.join(languages))

# 출력
c, python, java

 

소스코드

더보기
더보기

풀이 1 - join을 활용

print('\n'.join(input()))

-  홀짝 구분하기

문제 요약

자연수 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

 

설계

  1. if(나머지값==0) : 짝수 출력 
  2. 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입니다

 

 

소스코드

더보기
더보기

풀이 1 - join을 활용

print('\n'.join(input()))

 


🚀 새로 배운 것

- f-string을 사용하면 보다 유연하고, 가독성이 좋은 코드 작성이 가능해 문자열에서 많이 쓰인다

- str[:n], str[0:n]과 같은 문자열 인덱싱과 슬라이싱을 통해 문자열 출력 길이를 조정할 수 있다

 

 


😺  느낀점

- f-string, join과 같은 문자열을 다루는 함수들을 활용해 보다 자유로운 작성이 가능하다

- 내 풀이 말고 다른 사람들의 풀이를 비교하며 더 나은 방법은 없는지 항상 확인하자!