본문 바로가기
개발 공부 일지/Python

프로그래머스 코딩테스트 입문 day6 : 문자열, 반복문, 출력, 배열, 조건문

by yelimu 2024. 7. 2.

1. 문자열 뒤집기

[내 풀이]

(1) 

def solution(my_string):
    rev_string = ''
    rev_string = my_string[::-1]
    return rev_string

슬라이싱 이용하깅

 

(2) 

def solution(my_string):
    rev_string = ''
    
    for c in my_string:
        rev_string = c + rev_string
    return rev_string

 

문자열 안의 글자 c 를 순회하기 

 

[다른 풀이]

(1)

def solution(my_string):

    return ''.join(list(reversed(my_string)))

 

(2) 위 풀이를 풀어쓰면 

def solution(my_string):

    my_list = list(my_string)
    my_list.reverse()

    answer = ''.join(my_list)

    return answer


2. 직각삼각형 출력하기

[내 풀이]

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

 

[다른 풀이]

n = int(input())

for i in range(n):   # 0 ~ n-1 까지의 숫자를 순회

    print("*" * (i +1))

 


3. 짝수 홀수 개수

[내 풀이]

def solution(num_list):
    answer = []
    count_odd = 0
    count_even = 0
    
    for i in range(0, len(num_list)):
        if num_list[i] % 2 == 0:
            count_even += 1
        else:
            count_odd += 1 
    answer.append(count_even)
    answer.append(count_odd)
            
    return answer

 

[다른 풀이]

(1)

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

 

n을 2로 나눈 나머지(=> 짝수면 0, 홀수면 1이 나오니까) 를 index 로 사용 

 

(2)

def solution(num_list):

odd = sum(1 for n in num_list if n % 2)

 

return [len(num_list) - odd, odd]

 

n 이 짝수이면 2로 나눈 나머지 = 0 (False)

n 이 홀수이면 2로 나눈 나머지 = 1 (True)

True일때 1을 odd에 더한다


4. 문자 반복 출력하기 

[내 풀이]

def solution(my_string, n):
    answer = ''
    for c in my_string:
        answer += n * c
    return answer

 

[다른 풀이]

(1)

def solution(my_string, n):

    return ''.join(i*n for i in my string)

 

리스트 컴프리헨션 : [표현식 for 항목 in 반복가능객체 if 조건]

여기서는 제너레이터 표현식을 쓴것

문자열의 각 글자를 i 로 받아 i * n 실행

join 메서드로 리스트를 하나의 문자열로 결합