[프로그래머스]코딩테스트 입문 | 복습 Day16

sun_U·2023년 6월 27일
0
post-thumbnail

Day 16 문자열, 수학, 배열, 조건문

61. 편지


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

제출 코드

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

62. 가장 큰 수 찾기


문제
정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제출 코드

def solution(array):
    answer = [max(array), array.index(max(array))]
    return answer

63. 문자열 계산하기


문제
my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.

제한사항
연산자는 +, -만 존재합니다.
문자열의 시작과 끝에는 공백이 없습니다.
0으로 시작하는 숫자는 주어지지 않습니다.
잘못된 수식은 주어지지 않습니다.
5 ≤ my_string의 길이 ≤ 100
my_string을 계산한 결과값은 1 이상 100,000 이하입니다.
my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다.
계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다.
my_string에는 연산자가 적어도 하나 포함되어 있습니다.
return type 은 정수형입니다.
my_string의 숫자와 연산자는 공백 하나로 구분되어 있습니다.

제출 코드

def solution(my_string):
    exp = my_string.split()
    answer = int(exp[0])
    for i in range(1, len(exp),2):
        if exp[i] == '+':
            answer += int(exp[i+1])
        elif exp[i] == '-':
            answer -= int(exp[i+1])
    return answer

64. 배열의 유사도


문제
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.

제출 코드

def solution(s1, s2):
    answer = 0
    for i in s1:
        if i in s2:
            answer += 1
    return answer

다른 풀이

def solution(s1, s2):
	answer = len(set(s1)&set(s2))
    return answer

-> 집합의 성질을 이용.
교집합을 사용하면 중복되는 원소들을 찾고, len() 함수를 이용해 그 개수를 계산하는 방법.

profile
Data Engineer🐣

0개의 댓글