프로그래머스 Lv.0 ~ 1 문제

릿·2023년 1월 12일

코딩테스트

목록 보기
23/27

1. 중복된 숫자 개수 (Lv.0)

정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

def solution(array, n):
    answer = 0
    for i in range(len(array)) :
        if (n == array[i]) :
            answer+=1
    return answer

2. 배열 뒤집기 (Lv.0)

정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

1. 내 풀이

def solution(num_list):
    answer = list(reversed(num_list))
    return answer

2. 다른사람 풀이

1. 배열 기본기능 이용

  • [::-1] 의미: 맨 끝에서 시작해 맨 앞까지 -1씩 백스텝 진행.
  • str[::-1] : 문자열 순서 뒤집기
  • arr[::-1] : 배열 순서 뒤집기
def solution(num_list):
    return num_list[::-1]

2. for문으로 배열 역순으로 push하기

def solution(num_list):
    answer = []
    for i in range(len(num_list)-1, -1, -1):
        answer.append(num_list[i])
    return answer

3. reverse 간단하게 쓰기

def solution(num_list):
    answer = num_list
    answer.reverse()
    return answer

3. 배열 자르기 (Lv.0)

정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.

1. 내 풀이

def solution(numbers, num1, num2):
    answer = numbers[num1:num2+1]
    return answer

2. 개념

[start:end:step]

  • start
    선택. 시작 색인. (포함 O)
    ※ 없으면, 0부터 시작.

  • end
    선택. 종료 색인. (포함 X)
    ※ 없으면, 마지막 요소까지.

  • step
    선택. 색인 증가 단계.
    ※ 없으면, 1씩 증가.
    ※ -1 경우, 역순 진행.

4. 편지 (Lv.0)

머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.

def solution(message):
    answer = len(message)*2
    return answer

5. 직사각형 별찍기 (Lv.1)

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.

별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

n, m = input().split()
n = int(n)
m = int(m)

for i in range(m) :
    for j in range(n) :
        print('*', end='')
    print()

6. 자릿수 더하기 (Lv.0)

정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요

def solution(n):
    answer = 0
    tmp = str(n)
    for i in range(len(tmp)) :
        answer += int(tmp[i])
    return answer

7. 특정 문자 제거하기 (Lv.0)

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

1. 내 풀이

def solution(my_string, letter):
    answer = ''
    for i in range(len(my_string)) :
        if (my_string[i] == letter) :
            continue
        else :
            answer += my_string[i]
    return answer

2. 다른사람 풀이

def solution(my_string, letter):
    return my_string.replace(letter, '')

8. 모음 제거 (Lv.0)

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

1. 내 풀이

def solution(my_string):
    answer = ''
    
    for i in range(len(my_string)) :
        if (my_string[i] == 'a' or my_string[i] == 'e' or my_string[i] == 'i' or my_string[i] == 'o' or my_string[i] == 'u') :
            continue
        else :
            answer += my_string[i]

    return answer

2. 다른사람 풀이

  • if문에도 in 문법 사용이 가능하다.
  • range(len(my_string))을 하면 인덱스 순회가 가능하지만 my_string으로 하면 개별 문자 순회가 가능함
def solution(my_string):
    answer = ''

    for c in my_string:
        if c in ['a', 'e', 'i', 'o', 'u']:
            continue
        answer += c

    return answer
  • for문과 if문을 한줄로 쓰는 방법이 있었다...
def solution(my_string):
    return "".join([i for i in my_string if not(i in "aeiou")])

9. 문자열안에 문자열 (Lv.0)

문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.

1. 내 풀이

def solution(str1, str2):
    answer = 1 if str1.find(str2) != -1 else 2
    return answer

2. 개념

[true_value] if [condition] else [false_value]

10. 제곱수 판별하기 (Lv.0)

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

def solution(n):
    for i in range(1, n) :
        if (i ** 2 == n) :
            return 1
        elif (i ** 2 > n) :
            return 2 
profile
새로운 도전과 재미를 추구하는 프론트엔드 개발자

0개의 댓글