반응형
https://programmers.co.kr/learn/courses/30/lessons/12922
코딩테스트 연습 - 수박수박수박수박수박수? | 프로그래머스
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예 n return 3 수박수 4 수박수박
programmers.co.kr
문제설명
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요.
예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.
제한 조건
- n은 10,000이하인 자연수 입니다.
입출력 예
n | return |
3 | "수박수" |
4 | "수박수박" |
answer
word = "수박"
num = input("숫자를 입력하세요\n")
answer = '' #수박이 몇번 반복되는지 저장될 변수
cnt = int(num)//2 #입력받은 수에 2를 나눠 몫이 담기는 변수
if int(num)%2==0: #입력받은 수가 홀수 인지 짝수인지 구분하여 수로 끝나는지 박으로 끝나는지 체크
answer = word*cnt
#입력받은 수가 짝수 이므로 지정된 word에 몫을 곱하여 문자열을 붙힌다.
else:
answer = word*cnt+word[0]
#입력받은 수가 홀수 이므로 word에 몫을 곱하고 수를 추가로 붙힌다.
print(answer)
파이썬에서는 word[0]처럼 문자를 배열처럼 사용 가능합니다.
word[0]의 결과는 "수"가 리턴됩니다.
두 글자이기 때문에 입력받은 숫자가 짝수일 경우 약수중 가장 큰 수만큼만 곱해주면 되기 때문에 입력받은 숫자를 2로 나누어 몫만큼 곱해줍니다.
홀수일 경우엔 몫을 곱해주고 마지막에 "수"로 끝나야 하기 때문에 word[0]으로 "수"를 더해줍니다.
제가 올린 풀이는 완벽한 정답이 아닐 수도 있습니다!
검색을 해보시면 더욱 효율적인 방법이 존재하기 때문에 참고만 하시는 걸 추천드립니다.
함수를 배우기 전에 풀었던 문제라 함수화가 안되어있습니다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] LEVEL2 - 전화번호 목록 (Python) (0) | 2020.04.16 |
---|---|
[프로그래머스] LEVEL2 - 멀쩡한 사각형 (Python) (0) | 2020.04.15 |
[프로그래머스] LEVEL1 - 가운데 글자 가져오기 (Python) (0) | 2020.01.24 |
[프로그래머스] LEVEL1 - 콜라츠 추측 (Python) (0) | 2020.01.20 |
[프로그래머스] level1 - 시저 암호 (Python) (0) | 2020.01.06 |