트랙
/
PHP
PHP
/
연습 문제
/
고등학교 연인
고등학교 연인

고등학교 연인

학습 연습 문제

소개

문자열

문자열은 따옴표로 감싼 문자들의 나열이에요. 작은따옴표와 큰따옴표를 모두 사용할 수 있어요.

<?php

$where = "Spain";
$what = 'rain';

문자열 변수 확장

큰따옴표로 감싼 문자열 안에서는, 스코프 안에 있는 변수를 참조하면 그 값이 문자열에 삽입돼요.

<?php

$answer = 42;
$expanded = "The answer to life, the universe, and everything is $answer"; 

문자 인코딩 지원

예전에는 PHP의 문자열 함수가 ASCII 문자만 지원했고 최신 유니코드 인코딩은 지원하지 않았어요. ASCII 문자는 각각 1바이트인 반면, 유니코드 문자는 길이가 1~4바이트일 수 있어요. 유니코드 문자열을 안전하게 다뤄야 한다면, 기존 함수의 멀티바이트 버전을 참고해요.

<?php

$byte_length = strlen('😃'); // => 4
$string_length = mb_strlen('😃'); // => 1

지침

이 연습 문제에서는 고등학교 커플이 소셜 미디어에서 사랑을 고백할 수 있도록, 두 사람의 이니셜이 들어간 ASCII 하트를 만드는 걸 도와줄 거예요.

     ******       ******
   **      **   **      **
 **         ** **         **
**            *            **
**                         **
**     J. K.  +  M. B.     **
 **                       **
   **                   **
     **               **
       **           **
         **       **
           **   **
             ***
              *

1. 이름의 첫 글자 가져오기

HighSchoolSweetheart::firstLetter 함수를 구현해요. 이름을 받아서 첫 글자를 반환해야 해요. 이름에서 불필요한 공백도 정리해야 해요.

<?php

$sweetheart = new HighSchoolSweetheart();
$sweetheart->firstLetter("Jane");
# => "J"

2. 첫 글자를 이니셜 형식으로 만들기

HighSchoolSweetheart::initial 함수를 구현해요. 이름을 받아서 첫 글자를 대문자로 바꾸고 마침표를 붙여 반환해야 해요. 이전 단계에서 정의한 HighSchoolSweetheart::first_letter를 꼭 재사용해요.

<?php

$sweetheart = new HighSchoolSweetheart();
$sweetheart->initial("jane");
# => "J."

3. 전체 이름을 이름과 성으로 나누기

HighSchoolSweetheart::initials 함수를 구현해요. 공백으로 구분된 이름과 성으로 이루어진 전체 이름을 받아서 이니셜을 반환해야 해요. 이전 단계에서 정의한 HighSchoolSweetheart::initial을 꼭 재사용해요.

<?php

$sweetheart = new HighSchoolSweetheart();
$sweetheart->initials("Jane Doe");
# => "J. D."

4. 하트 안에 이니셜 넣기

HighSchoolSweetheart::pair 함수를 구현해요. 전체 이름 두 개를 받아서 ASCII 하트 안에 이니셜을 넣어 반환해야 해요. 이전 단계에서 정의한 HighSchoolSweetheart::initials를 꼭 재사용해요.

<?php

$sweetheart = new HighSchoolSweetheart();
$sweetheart->pair("Blake Miller", "Riley Lewis")
# => """
#      ******       ******
#    **      **   **      **
#  **         ** **         **
# **            *            **
# **                         **
# **     B. M.  +  R. L.     **
#  **                       **
#    **                   **
#      **               **
#        **           **
#          **       **
#            **   **
#              ***
#               *
# """
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
PHP Exercism

고등학교 연인 문제를 시작해 볼 준비가 됐나요?

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