코딩테스트/프로그래머스

[기초 Lv.0] 코딩 기초 트레이닝 Day1 - 출력

요호유후 2025. 2. 6. 18:58
반응형

▶ 문제1 - 문자열 출력하기

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181845

 

▶ 풀이

def solution(n):
    return str(n)
★ 풀이노트
    · 문자열 형변환 : str()

 


 

▶ 문제2 - a와 b 출력하기

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181951

▶ 풀이

a, b = map(int, input().split(' '))
print(f'a = {a}\nb = {b}')
★ 풀이노트
  · 정수를 입력 받아 정수를 출력하라는 문제
  · 별 문제 아닌 것 같지만, 입력을 받는 함수인 input()은 문자열로 반환을 해준다!

  · line1 에서 변수 a, b를 선언하여 값을 할당 받는다. 이때, 2 개의 값을 ' ' 포함하여 입력을 받는다. ("4 5" 입력)
  · 변수 a, b 각각 할당을 위해 split() 함수를 이용하여 ' ' 기준으로 값을 나눈다.
     → 출력 : a = "4", b = "5"
  ·  map() 함수를 이용하여 각각 int형으로 형변환을 해준다.
     → 출력 : a = 4, b = 5

  · line2에서 print() 함수를 이용하여 출력을 해준다.
  · f-string 포매팅을 이용하였다. 그리고 단락 구분을 위해 '\n' 사용하였다. 

 


 

▶ 문제3 - 문자열 출력하기

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181952

▶ 풀이

str = input()
print(str)

 

▣ 다른 사람 풀이

print(input())
★ 풀이노트
  · 내가 푼 풀이는 딱히 설명할게 없지만... 다른 사람 풀이 보고 무릎을 탁 친게 있어 가져왔다.
  · print() 안에 input()을 넣을 수 있다는걸 알게되었다.
  · 다른 사람 풀이 보는게 재밌어서? 항상 보는데 배우는 점도 많다.

 


 

▶ 문제4 - 문자열 반복해서 출력하기

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181950

▶ 풀이

txt, num = input().split(' ')
print(txt * int(num))
★ 풀이노트
  · '문자열 * 정수값'을 해주면 정수값만큼 반복한다.

 


 

▶ 문제5 - 대소문자 바꿔서 출력하기

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181949

▶ 풀이 ①

str = input()
print(str.swapcase())
★ 풀이노트
  · swapcase() : 대문자 → 소문자, 소문자 → 대문자로 바꿔주는 메서드 
 
  [같이 알아둘 메서드들]
    - isupper(), islower() : 해당 문자가 대문자인지 소문자인지 bool 값으로 반환
    - upper(), lower() : 해당 문자를 대문자, 소문자로 변환
    - title() : 첫 글자를 대문자로 변환
       예) a = "python git"
             print(a.title())  → 출력 : "Python Git"

▶ 풀이 

answer = ''

for txt in input():
    if txt.isupper():
        answer += txt.lower()
    else:
        answer += txt.upper()

print(answer)
★ 풀이노트
  · line 3 : 입력받은 문자열을 변수 txt로 하나씩 받는다.
  · line 4 : 변수 txt가 대문자인지 isupper() 메서드로 확인한다.
  · line 4 ~ 7 : True라면 if문이 실행되고 False의 경우 else문이 실행된다.
  · line 9 :변환된 문자는 변수 answer에 차곡차곡 담긴다.
 
  * input() 메서드를 딱히 변수로 담지 않아도 될 것 같아서(문제3에서) 응용해봤다! 잘 된다!

 


 

▶ 문제6 - 특수문자 출력하기

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181948

▶ 풀이

print('!@#$%^&*(\\\'"<>?:;')
★ 풀이노트
  · 파이썬에서 이스케이프문자(예. \n, \t, ...)를 백슬래시(\)와 조합해서 사용한다. 
  · 그래서 백슬래시를 단독으로 사용하면 에러가 뜬다.
  · 만약, 백슬래시를 문자로 출력하고 싶으면 \\ 앞에 하나 더 붙여줘야한다.
  
  · 그리고 파이썬에서는 문자열을 포함할 때 '와 "를 혼용?하여 사용할 수 있다.
  · 그래서 '를 출력하고 싶을 때 "로 묶고 "를 출력하고 싶을 땐 '를 사용했는데 둘 다 출력을 원한다면
  · 백슬래시를 이용할 수 있다. → /" 혹은 /'로 사용하면 된다.
  · 난 문자열 전체를 ''로 묶었기에, 문자열 내부의 ' 하나를 처리해야한다. 그래서 /'를 사용하여 문자처리를 했다.

  

▣ 다른 사람 풀이1

print(r'!@#$%^&*(\'"<>?:;')
★ 풀이노트
  · 문자열 앞에 r은 Raw string을 뜻한다.
  · 이스케이프 문자열을 그대로 출력하거나 json, html과 같은 문서에서 특수문자 등을 그대로 사용할 목적으로 쓴다.

예) txt = 'abc\nabc'
     print(txt)
     → 출력 : abc
                   abc

      txt = r'abc\nabc'
      print(txt)
     → 출력 : abc\nabc

** 단, r 뒤에 '' 으로 묶어줘야한다. ""는 왠지 모르겠지만 에러가 뜬다.

 

▣ 다른 사람 풀이2

print('''!@#$%^&*(\'"<>?:;''')
★ 풀이노트
  · 큰따옴표 3개 (""") 혹은 작은따옴표 3개(''')로 감싸면 여러줄의 문자열들을 그대로 출력할 수 있다.

  

 


😆 새로 알게 된 문법들 😆

1. print()안에 input() 넣을 수 있다. (문제3)
2. for문에 input()을 넣어 사용할 수 있다. (문제5)
3. raw string 사용법 - 문자열 앞에 r을 넣으면 이스케이프 문자 등 그대로 출력 가능 (문제6)
4. 따옴표 3개 사용법 - 여러줄의 문자열을 그대로 출력 가능 (문제6)

 

글을 정리하며...

Lv.0 문제들 풀까 말까 고민했는데 풀길 잘한것 같다.

사실 좀 걸린 문제도 있었고... ㅎ

다른 사람들 풀이 보면서 새로 알게된것이 너무 많아 아주 만족스러웠다.

다른 레벨보다는 금방 풀 순 있으니, 빠르게 풀면서 기초를 탄탄히 잡아둬야겠다!

프로그래머스 문제들 다 푸는 그날까지 홧팅 🤩 (나도 빨리 광기 어린 코드를 올려보고싶다)

 

 

반응형