트랙
/
Go
Go
/
연습 문제
/
테크 팰리스에 오신 것을 환영해요!
테크 팰리스에 오신 것을 환영해요!

테크 팰리스에 오신 것을 환영해요!

학습 연습 문제

소개

Go에서 string은 변경할 수 없는 바이트의 나열이에요. 이 바이트가 꼭 문자를 나타내야 하는 것은 아니에요.

문자열 리터럴은 큰따옴표 사이에 정의해요:

const name = "Jane"

문자열은 + 연산자로 연결할 수 있어요:

"Jane" + " " + "Austen"
// => "Jane Austen"

일부 특수 문자는 앞에 백슬래시를 붙여 이스케이프해야 해요. 예를 들어 문자열에서 탭은 \t, 줄 바꿈은 \n으로 나타내요.

"How is the weather today?\nIt's sunny"  
// =>
// How is the weather today?
// It's sunny

strings 패키지에는 문자열을 다루는 유용한 함수가 많이 들어 있어요. 문자열 함수에 대해 더 알고 싶다면 strings 패키지 문서를 확인해 봐요. 다음은 몇 가지 예시예요:

import "strings"

// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"

// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"

지침

근처에 "Tech Palace"라는 가전제품 가게가 있어요. 가게 주인은 최근 마케팅 문구를 표시하고, 손님이 입구에서 적립 카드를 스캔할 때 특별한 인사말을 보여 주기 위해 큰 디스플레이를 설치했어요. 이 디스플레이는 작은 LED 조명 여러 개로 이루어져 있고, 여러 줄의 텍스트를 표시할 수 있어요.

가게 주인은 새 디스플레이에 표시할 텍스트를 만드는 코드에 도움이 필요해요.

1. 환영 메시지 만들기

적립 카드를 스캔하는 대부분의 손님에게는 디스플레이에 "Welcome to the Tech Palace," 뒤에 손님 이름을 대문자로 붙여서 보여 주고 싶어 해요.

손님 이름을 string 인자로 받아 원하는 메시지를 string으로 반환하는 WelcomeMessage 함수를 구현해요.

WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY

2. 멋진 테두리 추가하기

가게에서 많이 구매하는 단골손님에게는 환영 메시지 앞뒤에 별 한 줄을 넣어 디스플레이를 더 멋지게 보여 주고 싶어 해요. 줄에 별이 몇 개 들어가야 할지는 아직 정하지 못해서, 별 개수를 설정할 수 있게 하고 싶어 해요.

환영 메시지(string)와 줄당 별 개수(int형)를 인자로 받는 AddBorder 함수를 작성해요. 이 함수는 3줄로 이루어진 string을 반환해야 해요. 원하는 개수의 별로 이루어진 줄, 전달받은 그대로의 환영 메시지, 그리고 또 한 줄의 별 순서예요.

AddBorder("Welcome!", 10)

다음과 같은 결과를 반환해야 해요:

**********
Welcome!
**********

3. 오래된 마케팅 메시지 정리하기

새 디스플레이를 설치하기 전, 가게에는 설정을 바꿀 수 없는 고정된 줄만 표시할 수 있는 비슷한 디스플레이가 있었어요. 주인은 오래된 마케팅 메시지 일부를 새 디스플레이에서 다시 사용하고 싶어 해요. 그런데 데이터에는 이미 별 테두리와 불필요한 공백 문자가 들어 있어요. 메시지를 다시 사용할 수 있도록 정리하는 것이 과제예요.

오래된 마케팅 메시지를 문자열로 받는 CleanUpMessage 함수를 구현해요. 이 함수는 먼저 텍스트에서 모든 별을 제거하고, 그다음 남은 텍스트의 앞뒤 공백을 제거해야 해요. 그런 다음 정리된 메시지를 반환해야 해요.

message := `
**************************
*    BUY NOW, SAVE 10%   *
**************************
`

CleanUpMessage(message)
// => BUY NOW, SAVE 10%
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Go Exercism

테크 팰리스에 오신 것을 환영해요! 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Go 트랙을 개념 34개연습 문제 166개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.