2021(39)
-
해시_위장
문제 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. Colths: 스파이가 가진 의상들이 담긴 2차원 배열 -> 다른 옷의 조합의 수 return 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길..
2021.03.15 -
해시_전화번호 목록
문제 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예제 phone..
2021.03.11 -
해시_완주하지 못한 선수
문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "kiki",..
2021.03.10 -
디자인패턴_Composite Pattern of Structural Pattern
Composite Pattern 여러개의 객체들로 구성된 복합 객체와 단일 객체를 클라이언트에서 구별없이 다루게 해주는 패턴 전체 - 부분(Directory-File) 관계를 갖는 객체들 사이의 관계 정의시 유용 클라이언트는 전체와 부분을 구분하지 않고, 동일한 인터페이스를 사용 Component - 구체적인 부분 - Leaf 클래스와 전체에 해당하는 Composite 클래스에 공통 인터페이스 정의 Leaf - 구체적인 부분 클래스 - Composite 객체의 부품으로 설정 Composite - 전체 클래스 - 복수 개의 Component를 갖도록 정의 (복수 개의 Leaf, 복수 개의 Composite 객체를 부분으로 가질 수 있다.) 컴퓨터에 추가 장치 지원하기 Computer 클래스: 합성 관계 K..
2021.01.20 -
디자인패턴_Factory Method Pattern of Creational Pattern
객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴 - 객체의 생성 코드를 별도의 클래스와 메서드로 분리해 객체 생성의 변화에 대비 가능 - 특정 기능의 구현은 개별 클래스를 통해 제공되는 것이 바람직한 설계 --> 기능의 변경이나 상황에 따른 기능의 선택은 해당 객체를 생성하는 코드의 변경을 초래 --> 상황에 따라 적절한 객체를 생성하는 코드는 자주 중복 가능 --> 객체 생성 방식의 변화는 해당하는 모든 코드 부분을 변경해야 하는 문제 발생 Product: Factory Method로 생성될 객체의 공통 인터페이스 ConcreteProduct: 구체적으로 객체가 생성되는 클래스 Creator: 팩토리 메서드를 갖는 클래스 ConcreteCreator: 팩토리 메서드를 구현하는 클래스로..
2021.01.19 -
디자인패턴_Decorator Pattern of Structural Pattern
데코레이터 패턴이란, 기능을 동적으로 유연하게 확장할 수 있게 해주는 패턴이다. 기본 기능 + "추가 기능" 추가 가능한 기능의 종류가 많은 경우에 각 추가 기능을 Decorator 클래스로 정의한 후 필요한 Decorator 객체를 조합해 추가 기능의 조합을 설계하는 방식 EX) 기본 도로 표시 기능 + 차선 표시/교통량 표시/교차로 표시/단속 카메라 표시 => 추가 기능의 모든 조합 = 13(4+6+2+1) *** 기본 기능에 추가할 수 있는 많은 종류의 부가 기능에서 파생되는 다양한 조합을 동적으로 구현할 수 있는 패턴 *** Component - 기본기능(ConcreteComponent)와 추가기능(Decorator)의 공통 기능을 정의 - 클라이언트는 Component를 통해 실제 객체를 사용함..
2021.01.19