[Programmers/Lv. 0] 코딩테스트 입문 Day 6 - 문자열, 반복문, 출력, 배열, 조건문 (Python)

2023. 3. 13. 19:26Algorithm

1. 문자열 뒤집기


문자열을 뒤집으라는 문제이다.

 

(내가 생각한 풀이 과정)

앞선 배열 뒤집기에서의 슬라이싱 방법을 사용한 것과 동일하게 풀 수 있을 거라 생각했다.

 

(코드)

더보기

💡 내 코드

def solution(my_string):
    return my_string[::-1]

 


2. 직각삼각형 출력하기


길이가 정수 n인 직각 이등변 삼각형을 출력하라는 문제이다.

 

(내가 생각한 풀이 과정)

for 반복문을 이용하여 1부터 n까지 수를 늘려가면서 "*"의 갯수를 곱해주면 쉽게 해결할 수 있다.

 

(코드)

더보기

💡 내 코드

n = int(input())
for i in range(1, n+1):
    print("*"*i)

 


3. 짝수 홀수 개수


num_list 배열의 원소들 중 짝수와 홀수의 개수를 담은 배열을 반환하라는 문제이다.

 

(내가 생각한 풀이 과정)

num_list 배열을 반복하면서 각 원소가 홀수인지 짝수인지를 "%2" 연산을 통해서 구해주면 풀 수 있다.
여기서 하나의 포인트는 2로 나눴을 때 나머지가 0이라면 짝수, 나머지가 1이라면 홀수가 되는 사실에서 이 나머지 값을 새로운 배열의 인덱스로 활용이 가능하다는 것이다.
정리하자면, %2의 결괏값이 0일 경우에 새로운 answer 배열의 인덱스 [%2==0]을 +1, 홀수일 경우에도 마찬가지라고 생각하면 되겠다.

 

(코드)

더보기

💡 내 코드

def solution(num_list):
    answer = [0, 0] 
    for i in num_list:
        answer[i%2] += 1
    return answer

 


4. 문자 반복 출력하기


문자열과 정수가 주어질 때, 문자열 내의 각 문자를 n만큼 반복한 문자열을 반환시키라는 문제이다.

 

(내가 생각한 풀이 과정)

문자열을 for문으로 반복시키면서,
각 문자를 n만큼 반복시켜 새로운 문자열에 추가해주면 쉽게 해결할 수 있을 거라 생각했다.

 

(코드)

더보기

💡 내 코드

def solution(my_string, n):
    result = ""
    for i in my_string:
        result += i*n
    return result

 

💡 다른 사람의 풀이 코드

문자열의 경우, join 함수를 사용하면 더 깔끔하게 한 줄로 코드를 작성할 수도 있었다.
참고로 join 함수의 사용법은 "연결방법.join(string 타입의 값을 갖고 있는 리스트)"이다. 

def solution(my_string, n):
    return ''.join(i*n for i in my_string)