목록분류 전체보기 (84)
UP
문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 ..
문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 arr divisor return [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] 1 [1, 2, 3, 36] [3,2,6] 10 [-1] 입출력 예 설명 입출력 예#1 arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라..
생성자 (Constructor) 클래스로부터 객체를 생성할 때, 호출되며 '객체의 초기화를 담당'. // 생성자(Constructor) constructor(fullName: string, age: number, jobTitle: string, hourlyRate: number, workingHourPerWeek: number) { this.fullName = fullName; this.age = age; this.jobTitle = jobTitle; this.hourlyRate = hourlyRate; this.workingHourPerWeek = workingHourPerWeek; } app.ts class Employee { // 프로퍼티(Property) private _fullNa..
객체지향 프로그래밍 연관된 변수와 함수들을 한 덩어리로 묶어서 구조화하여 표현하는 프로그래밍 스타일 어플리케이션을 실제 세상에 존재하는 객체와 같은 단위로 쪼개고 객체들이 서로 상호 작용함으로써 시스템이 동작하는 것 손님이 물건을 장바구니에 담아서 주문, 결제한다. → 밑줄 친 것들이 하나의 객체가 되는 것 클래스(Class) 객체(object)들은 클래스를 통해서 만들어 진다. 클래스는 객체의 뼈대, 설계도, 생산틀 클래스 속에서 정의된 함수들은 클래스 내 정의된 변수들에게 접근 가능(this 키워드)하고 상대적으로 적은 매개변수를 가진다. 매개변수가 적을 수록 함수를 더 쉽게 사용할 수 있고 쉬운 유지보수가 가능하므로 깨끗한 코드가 된다. 프로퍼티(Property) : 클래스 내에 정의된 변수 메소드..
함수의 타입 명시 함수의 반환(Return) 타입 function sendGreeting(message, userName): void { // void(아무 것도 반환하지 않음) console.log(`${message}, ${userName}`); } sendGreeting('Hello', 'Mark'); void 외에도 다양한 타입으로 반환 타입 지정 가능 function sendGreeting(message, userName): string { return 'Hello, Mark'; } function sendGreeting(message, userName): string[] { return ['Hello', 'Mark']; } function 함수이름 (매개변수1, 매개변수2, ...): 함수의 ..
Any 타입 어떠한 타입이든 모두 가능 타입을 명시할수록 개발자의 의도를 명확하게 코드화 할 수 있고 타입에러를 컴파일 시 잡아낼 수 있기 때문에 코드를 효과적으로 유지보수 할 수 있다. 그러므로 any 타입은 지양하는 것이 좋다. 변수의 타입을 모를 경우에만 사용 let someValue: any = 5; // Any 타입 someValue = 'hello'; someValue = true; 유니언 타입 제한된 타입들을 동시에 지정하고 싶을 때 사용(파이프라인 이용) let price: number | string = 5; // 유니언 타입 price = 'free'; price = true; // 에러 price는 숫자나 문자 타입만을 지정할 수 있으므로 boolean 타입은 에러를 발생 타입 별칭(..
열거형(Enum) 연관된 아이템들을 함께 묶어서 표현할 수 있는 수단 숫자 열거형(Numeric Enum) 일반적인 enum일 경우 JS로 컴파일했을 때, 타입스크립트가 enum에 선언된 순서에따라 0부터 숫자를 할당 app.ts enum GenderType { Male, Female, genderNeutral } app.js var GenderType; (function (GenderType) { GenderType[GenderType["Male"] = 0] = "Male"; GenderType[GenderType["Female"] = 1] = "Female"; GenderType[GenderType["genderNeutral"] = 2] = "genderNeutral"; })(GenderType ||..
인터페이스 (Interface) 객체를 구조화 실제 구현이 들어있지 않고 상호 간에 정의한 조건이나 규약을 의미 객체의 스펙(속성과 속성의 타입) 함수의 파라미터 함수의 스펙(파라미터, 반환 타입 등) 배열과 객체를 접근하는 방식 클래스 타입스크립트에 명시한 인터페이스는 컴파일 후 자바스크립트에 표시되지 않음 타입스크립트로부터 다양한 정보를 제공받아 코드를 작성하는데 도움을 받는 것이므로 굳이 자바스크립트에 표시할 필요는 없기 때문 인터페이스 사용 예시 1 Student 인터페이스 생성 interface Student { readonly studentID: number; studentName: string; age: number; gender: ..