Menu
CoddyTech

스마트 연락처 관리자

Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 76번째.

challenge icon

챌린지

중급

연락처 목록을 정리하세요. 프로그램은 정수 n을 읽은 다음, n개의 줄을 읽습니다. 각 줄은 연락처 하나를 나타내며, 이름, 이메일, 전화번호가 쉼표로 구분되어 있습니다(각 줄에는 쉼표가 정확히 두 개 있습니다).

연락처를 순서대로 확인하세요.

  1. 이메일을 소문자로 바꾸고 전화번호에서는 숫자만 남기세요. (555) 123-4567은 5551234567이 됩니다.
  2. 이메일이 유효하지 않으면 해당 연락처를 건너뛰세요. 유효한 이메일에는 @와 .가 포함되어야 하며, 공백은 없어야 합니다.
  3. 전화번호의 숫자가 정확히 10개가 아니면 해당 연락처를 건너뛰세요.
  4. 이전에 남긴 연락처와 이메일이 같거나 전화번호가 같으면(정리한 후 기준) 해당 연락처를 건너뛰세요.

남긴 각 연락처를 한 줄에 하나씩 출력하세요. 이름, | , 이메일, | , 전화번호의 숫자 순서로 출력합니다. 마지막으로 Contacts kept: , 남긴 연락처 수, of , n을 출력하세요.

다음 입력의 경우:

3
John Doe,JOHN@email.com,123-456-7890
Jane Doe,jane@email.com,123.456.7890
Bob Smith,invalid.email,12345

출력은 다음과 같습니다.

John Doe | john@email.com | 1234567890
Contacts kept: 1 of 3

Jane은 전화번호의 숫자가 John의 전화번호와 같으므로 건너뛰고, Bob은 이메일에 @가 없으며 전화번호가 너무 짧으므로 건너뜁니다.

직접 해보기

extends Node

func _ready():
	var n := int(OS.read_string_from_stdin())
	# n개의 연락처를 읽고 정리한 뒤 남긴 연락처를 출력하세요
	pass

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러