수박수박수박수박수박수?
문제 설명
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요.
예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
제한 사항
- n은 길이 10,000이하인 자연수입니다.
입출력 예
n | return |
3 | "수박수" |
4 | "수박수박" |
Python 코드
def solution(n):
return ('수박'*n)[:n]
- '수박' * n --> 입력받은 n만큼 '수박' 반복
- solution(3)이면 '수박수박수박' 이므로 slicing 필요
- 따라서 입력받은 n만큼 출력해주면 된다. [:n]
def solution(n):
answer = ''
for i in range(n):
if i % 2 == 0:
answer += '수'
else:
answer += '박'
return answer
- i를 2로 나눈 값이 0이면 짝수 --> '수' 추가
- i를 2로 나눈 값이 0이 아니면 홀수 --> '박' 추가
- n = 3이면 i = 0, answer = '수' / i = 1, answer = '수박' / i = 2, answer = '수박수'
- n = 4이면 i = 0, answer = '수' / i = 1, answer = '수박' / i = 2, answer = '수박수' / i = 3, answer = '수박수박'
* 참고 링크 : https://wooaoe.tistory.com/70
def solution(n):
return "수박"*(n//2) + "수"*(n%2)
- n을 2로 나눈 값이 반복되는 횟수
- 그 횟수만큼 '수박'을 붙여주고, 홀수일 경우에는 뒤에 "수"가 한번 더 붙습니다.
* Slicing(슬라이싱) : 연속적인 객체들에 범위를 지정한 후 선택해서 객체들을 가져오는 방법
- 기본 형태
a[start : end : step]
- start : 슬라이싱을 시작할 시작 위치
- end : 슬라이싱을 끝낼 위치로 end는 포함되지 않음
- step : stride(보폭)라고도 불리며, 몇 개씩 끊어서 가져올지와 방향을 정하는 옵션
- 인덱스 값들의 위치
a = ['a', 'b', 'c', 'd', 'e']
# Index References
# -------------------------------
# | a | b | c | d | e |
# -------------------------------
# | 0 | 1 | 2 | 3 | 4 | // 양수의 경우
# -------------------------------
# | -5 | -4 | -3 | -2 | -1 | // 음수의 경우
# -------------------------------
- 특정 시작위치부터 끝까지 가져오기
- a[ start : ]
a = ['a', 'b', 'c', 'd', 'e']
a[ 1 : ]
# result : ['b', 'c', 'd', 'e']
a[ -3 : ]
# result : ['c', 'd', 'e']
- 시작점부터 특정 위치까지 가져오기
- a[ : end ]
a = ['a', 'b', 'c', 'd', 'e']
a[ : 2 ]
# result : ['a', 'b']
- 특정 위치부터 특정 위치까지 모두 가져오기
- a[ start : end ]
a = ['a', 'b', 'c', 'd', 'e']
a[ 2 : 4 ]
# result : ['c', 'd']
a[ -4 : -2 ]
# result : ['b', 'c']
* 참고 링크 : https://twpower.github.io/119-python-list-slicing-examples
C++ 코드
#include <string>
#include <vector>
using namespace std;
string solution(int n) {
string answer = "";
for(int i=0; i<n; i++){
if(i%2 == 0)
answer += "수";
else
answer += "박";
}
return answer;
}
* 참고 링크 : https://jjeongil.tistory.com/643
'코딩테스트 > Programmers' 카테고리의 다른 글
[코딩테스트/Programmers] 06_가운데 글자 가져오기 (Lv1.) (0) | 2021.12.26 |
---|---|
[코딩테스트/Programmers] 05_두 정수 사이의 합 (Lv1.) (0) | 2021.12.26 |
[코딩테스트/Programmers] 04_x만큼 간격이 있는 n개의 숫자 (Lv1.) (0) | 2021.12.26 |
[코딩테스트/Programmers] 03_짝수와 홀수 (Lv1.) (0) | 2021.12.26 |
[코딩테스트/Programmers] 01_평균구하기 (Lv1.) (0) | 2021.12.24 |