코딩테스트 연습 - 전화번호 목록 | 프로그래머스 스쿨 (programmers.co.kr)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace _230120_1
{
class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
string[] phone_book0 = { "119", "97674223", "1195524421" };
string[] phone_book1 = { "123", "456", "789" };
string[] phone_book2 = { "12", "123", "1235", "567", "88" };
sw.WriteLine(solution(phone_book0));
sw.WriteLine(solution(phone_book1));
sw.WriteLine(solution(phone_book2));
sr.Close();
sw.Flush();
sw.Close();
}
static bool solution(string[] arr)
{
List<int> phoneNumber = new List<int>();
List<int> allNumber = new List<int>();
bool isTrue = true;
for (int i = 0; i < arr.Length; i++) // 문자열 배열 검사
{
for(int j = 0; j < arr[i].Length; j++) // 배열내부의 문자열 검사
{
string str = "";
for (int k = 0; k <= j; k++) // 문자열을 0부터 j까지 조합
{
str += arr[i][k];
}
if (j == arr[i].Length - 1) // 문자열의 마지막(전화번호)를 리스트에저장
{
phoneNumber.Add(int.Parse(str));
}
else
{
allNumber.Add(int.Parse(str)); // 모든 숫자조합 저장(같은 전화번호는 없다)
}
}
}
foreach(int number in allNumber)
{
if (phoneNumber.Contains(number)) // 전화번호 리스트가 숫자조합 중 포함하는 수가 있다면 거짓
{
isTrue = false;
break; //불필요한 연산을 멈춤
}
}
return isTrue;
}
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
C#) [프로그래머스] 비밀지도 (6) | 2023.01.29 |
---|---|
C#) [프로그래머스] 다트게임 (0) | 2023.01.21 |
C#) [프로그래머스] 옹알이 (1) (0) | 2023.01.19 |
C#) [프로그래머스] 완주하지 못한 선수 (0) | 2023.01.19 |
C#) [프로그래머스] 최소 직사각형 (0) | 2023.01.18 |