공부 기록

코테 연습기 본문

다양한 분야 공부 기록/Python Coding Test

코테 연습기

kstar2 2025. 1. 28. 20:35

1.특수문자 출력하기

다음과 같이 출력하도록 코드를 작성

!@#$%^&*(\'"<>?:;
print('!@#$%^&*(\\\'\"<>?:;')

#print(r'!@#$%^&*(\'"<>?:;') #r을 사용하는 방법도 있음.

python 에서 'f' 나 'F'를 앞에 붙여서 변수를 담을 수 있도록 함 

ex. print(f'User name : {user_name}')

비슷한 방법으로 .format()을 사용하는 방법이 있음

ex. print('User name : {}'.format(user_name)

print('{0} 고객님의 나이는 {1}살이며, {0}님의 키는 {2}cm입니다.'
      .format(user_name, user_age, user_height))

 

python에서 문자열 앞에 'r'이나 'R'을 붙이면 Escape문자를 인식하지 않고 그대로 출력

* Escape문자란? \n 과 같이 특정 역할을 하는 문자들

 

이 외에도 아래와 같은 방법으로 가능함

  • %s : 문자열
  • %d : 정수
  • %f : 실수

2.덧셈식 출력하기

두 정수 ab가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성 (단 1 ≤ a, b ≤ 100)

a, b = map(int, input().strip().split(' '))
print(f'{a} + {b} = {a+b}') # 새로 작성한 부분

 

3.문자열 붙여서 출력하기

str1과 str2을 이어서 출력하는 코드를 작성 (1 ≤ str1, str2의 길이 ≤ 10)

str1, str2 = input().strip().split(' ')
print(str1+str2) # 새로작성

#print(input().strip().replace(' ', '')) #replace를 이용한 풀이도 있었음

strip() 함수는 문자열의 시작과 끝에서 공백을 제거한 후 반환

split() 괄호 안에 아무것도 넣지 않으면 공백(띄어쓰기, 탭 등)을 기준으로 문자열을 나누고, 만약 특정 문자가 들어가 있다면 해당 문자를 기준으로 나눔

 

4.문자열 돌리기

str = input()
for i in str: print(i) #새로작성

#print('\n'.join(input())) join을 이용한 풀이도 있었음

input() 함수는 사용자의 키보드 입력을 임시적인 버퍼에 담고. 엔터가 입력되는 순간 엔터전까지 입력된 내용들을 소비함

관련해서 실험한 블로그도 있었다

https://velog.io/@detailed_root/Python-input-%EC%9D%98-%EB%8F%99%EC%9E%91

 

[Python] input() 의 동작

파이썬에서 input() 메서드는 모두가 익숙할 것입니다.그저 터미널에서 사용자의 입력이 필요할 때 사용하죠. 단순히 '키보드 입력 받을 때 쓰는 함수'라고만 이해해선 안된다고 생각합니다. 어떻

velog.io

 

5.홀짝 구분하기

자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성

(1 ≤ n ≤ 1,000)

a = int(input())
#아래부터 새로 작성
if a%2:
    print(f'{a} is odd')
else:
    print(f'{a} is even')
    
#print(f"{n} is {'eovdedn'[n&1::2]}") 비트연산을 이용한 사람도 있다

 

6.문자열 겹쳐쓰기

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성

제한사항

  • my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이
def solution(my_string, overwrite_string, s):
# 아래서부터 작성
    answer = my_string[:s] + overwrite_string
    if s + len(overwrite_string) < len(my_string):
        answer+= my_string[s + len(overwrite_string):]
    return answer
    
    #return my_string[:s] + overwrite_string + my_string[s + len(overwrite_string):]

문자열에서 [:]이거 형태에서 초과된 수치가 들어가도 오류가 발생하지 않는듯..?

 

7.문자열 섞기

길이가 같은 두 문자열 str1과 str2가 주어집니다.

두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성

def solution(str1, str2):
    answer = ''
    #아래부터 작성
    for i in range(len(str1)):
        answer += str1[i] + str2[i]
        
    """
    for s1,s2 in zip(str1,str2):
        answer+=s1+s2
    """
    return answer

https://wjunsea.tistory.com/106#google_vignette

 

8.문자 리스트를 문자열로 변환하기

arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성

def solution(arr):
    answer = ''.join(i for i in arr) #.join(i for i in arr)을 추가함
    return answer

 

-> for 문을 안쓰고 join(arr)도 가능함

 

9.문자열 곱하기

문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성

제한사항

  • 1 ≤ my_string의 길이 ≤ 100
  • my_string은 영소문자로만 이루어져 있습니다.
  • 1 ≤ k ≤ 100
def solution(my_string, k):
    answer = my_string*k #answer = '' 였다가 수정함
    return answer

 

10.더 크게 합치기

양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성(1 ≤ a, b < 10,000)

def solution(a, b): 
    answer = max(int(str(a) + str(b)), int(str(b) + str(a))) #answer = ''을 수정함
    return answer
    # return int(max(f"{a}{b}", f"{b}{a}")) 이렇게 해결하는 방법도 있음