https://www.codewars.com/kata/59a96d71dbe3b06c0200009c
Codewars - Achieve mastery through coding practice and developer mentorship
A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!
www.codewars.com
첫 문제로는 간단한 별찍기 문제를 가져왔다. 문법을 알아가기에 좋아보인다.
string을 반환하라는 말이 직접적으로 없길래, 걍 print 하면 되는지 알고 했다가 낭패를 봤다.
def generate_shape(n):
for _ in range(n):
for __ in range(n):
print("+", end='')
print()
그냥 2중 for loop으로 별찍기 하듯이 찍어봤다. 다른 함수가 아직 뭐가있는지 제대로 적응이 안된다 파이썬은.
그런데 에러로 string을 반환하래서 다시 조금 변경했다.
def generate_shape(n):
result = ''
for _ in range(n):
for __ in range(n):
result += '+'
result += '\n'
return result.strip()
모범답안:
def generateShape(integer):
return '\n'.join('+' * integer for i in range(integer))
def generate_shape(n: int) -> str:
return '\n'.join(['+' * n] * n)
일단 .join은 자바스크립트에서는 배열을 문자열로 변경할때 썼었는데, 여기서의 사용방법은 줄바꿈할때 사용하는거 같다.
def generateShape(integer):
return ('+' * integer)
print(generateShape(3))
실제로 이걸 출력하면 +++ 인데,
def generateShape(integer):
return '\n'.join('+' * integer)
print(generateShape(3))
이걸 출력하면
+
+
+ 가 된다.
'\n'.join(['+' * n] * n)
이건 좀 대단한게 만약 n이 3이면 ['+' * n] * n = [+++, +++, +++] 가 될 거고,
여기서 각 엘리먼트마다 줄바꿈을 해준다.
난 이게 정말 스마트한 방법이라 생각해서보니, clever를 제일 많이 받았다.
파이썬은 익숙하지가 않아서 아직 어렵다.
새로 배운점:
.strip() | 문자열내의 줄바꿈, 앞뒤의 공백을 제거 |
pass | 빈 함수를 일단 임시로 뭔가 채워둘때 사용 |
'\n'.join() | 문자열을 다중 행 형식으로 처리 |
'알고리즘' 카테고리의 다른 글
[CodeWars] Counting sheep... - 8Kyu (1) | 2024.12.04 |
---|---|
[CodeWars] Count by X - 8Kyu (0) | 2024.11.30 |
알고리즘(JS) - BFS DFS (0) | 2022.06.28 |
알고리즘 에너그램 (0) | 2022.06.28 |
백준 2839번 - 설탕 배달 (0) | 2022.06.26 |