본문 바로가기

전체 글178

[JS] 코딩 테스트 문제 : 공통원소구하기 문제 : 공통원소구하기 문제 설명 A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 집합 A의 크기 N(1 2023. 10. 25.
[JS] 코딩 테스트 문제 : 두 배열 합치기 문제 : 두 배열 합치기 문제 설명 오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램 을 작성하세요. ▣ 입력설명 첫 번째 줄에 첫 번째 배열의 크기 N(1 2023. 10. 21.
[JS] 코딩 테스트 문제 : K번째 큰 수 문제 : K번째 큰 수 문제 설명 현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있습니다. 같은 숫자의 카드가 여러장 있을 수 있습니다. 현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려고 합니다. 3장을 뽑을 수 있는 모든 경우를 기록합니다. 기록한 값 중 K번째로 큰 수를 출력하는 프로그램을 작성하세요. 만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값은 22입니다. ▣ 입력설명 첫 줄에 자연수 N(3 2023. 10. 18.
[JS] 코딩 테스트 문제 : 졸업 선물 문제 : 졸업 선물 문제 설명 선생님은 올해 졸업하는 반 학생들에게 졸업선물을 주려고 합니다. 학생들에게 인터넷 쇼핑몰에서 각자 원하는 상품을 골라 그 상품의 가격과 배송비를 제출하라 고 했습니다. 선생님이 가지고 있는 예산은 한정되어 있습니다. 현재 예산으로 최대 몇 명의 학생에게 선물을 사줄 수 있는지 구하는 프로그램을 작성하세요. 선생님은 상품 하나를 50% 할인해서(반 가격) 살 수 있는 쿠폰을 가지고 있습니다. 배송비는 할인에 포함되지 않습니다. ※ 문제와 답안지를 제공한 제작자가 중요치 않은 일부 파라미터 생략하는 등 일부 다를 수 있습니다. (크게 문제되는 부분은 없음) ▣ 입력설명 첫 번째 줄에 반 학생수 N(1 (a[0] + a[1]) - (b[0] + b[1])); 보완 내용 명시적으로.. 2023. 10. 18.
[JS] 코딩 테스트 문제 : 멘토링 문제 : 멘토링 문제 설명 현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만들려고 합니 다. 멘토링은 멘토(도와주는 학생)와 멘티(도움을 받는 학생)가 한 짝이 되어 멘토가 멘티의 수학공부를 도와주는 것입니다. 선생님은 M번의 수학테스트 등수를 가지고 멘토와 멘티를 정합니다. 만약 A학생이 멘토이고, B학생이 멘티가 되는 짝이 되었다면, A학생은 M번의 수학테스트에서 모두 B학생보다 등수가 앞서야 합니다. M번의 수학성적이 주어지면 멘토와 멘티가 되는 짝을 만들 수 있는 경우가 총 몇 가지 인지 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 반 학생 수 N(1 2023. 10. 17.
[JS] 자세히 알아둬서 나쁠 것 없는 정규 표현식과 사용방법 정규 표현식(Regular Expression) 정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴을 의미합니다. 정규 표현식 선언 // 리터럴 방식 const re = /ab+c/; // 객체 선언 방식 const re = new RegExp("ab+c"); 정규 표현식 모양새 / 패턴 / 플래그 정규표현식 매칭 패턴 패턴 의미 a-zA-Z 영어알파벳(-으로 범위 지정) ㄱ-ㅎ가-힣 한글 문자(-으로 범위 지정) 0-9 숫자(-으로 범위 지정) . 모든 문자열(숫자, 한글, 영어, 특수기호, 공백 모두) 단, 줄바꿈 X \d 숫자 \D 숫자가 아닌 것 \w 밑줄 문자를 포함한 영숫자 문자에 대응 [A-Za-z0-9_] 와 동일 \W \w 가 아닌 것 \s space 공백 \S sp.. 2023. 10. 16.
JS 공부는 다다익선 - 13. REST API 1. REST(Representational State Transfer) REST 는 웹의 장점을 최대한 활용할 수 있는 아키텍쳐로서 이는 HTTP 프로토콜을 의도에 맞게 디자인하도록 유도하고 있다. REST의 기본 원칙을 성실히 지킨 서비스 디자인을 “RESTful”이라고 표현한다. 2. REST API 중심 규칙 REST에서 가장 중요한 기본적인 규칙은 두 가지이다. 2.1 URI는 정보의 자원을 표현해야 한다. 리소스명은 동사보다는 명사를 사용한다. URI는 자원을 표현하는데 중점을 두어야 한다. get 같은 행위에 대한 표현이 들어가서는 안된다. # bad GET /getTodos/1 GET /todos/show/1 # good GET /todos/1 2.2 자원에 대한 행위는 HTTP Metho.. 2023. 10. 6.
JS 공부는 다다익선 - 12. 이벤트 1. 이벤트의 이해 이벤트가 발생하는 시점이나 순서를 사전에 인지할 수 없으므로 일반적인 제어 흐름과는 다른 접근 방식이 필요하다. 즉, 이벤트가 발생하면 누군가 이를 감지할 수 있어야 하며 그에 대응하는 처리를 호출해 주어야 한다. 브라우저는 이벤트를 감지할 수 있으며 이벤트 발생 시에는 통지해 준다. 이 과정을 통해 사용자와 웹페이지는 상호작용(Interaction)이 가능하게 된다. 이벤트는 일반적으로 함수에 연결되며 그 함수는 이벤트가 발생하기 전에는 실행되지 않다가 이벤트가 발생되면 실행된다. 이 함수를 이벤트 핸들러라 하며 이벤트에 대응하는 처리를 기술한다. 2. 이벤트 루프(Event Loop)와 동시성(Concurrency) 이벤트 루프(Event Loop)는 이벤트 리스너를 관리하고, 이.. 2023. 10. 4.
JS 공부는 다다익선 - 11. 상속과 캡슐화 1. 상속 (Inheritance) 클래스 기반 언어에서 객체는 클래스의 인스턴스이며 클래스는 다른 클래스로 상속될 수 있다. 자바스크립트는 기본적으로 프로토타입을 통해 상속을 구현한다. 이것은 프로토타입을 통해 객체가 다른 객체로 직접 상속된다는 의미이다. 이러한 점이 자바스크립트의 약점으로 여겨지기도 하지만 프로토타입 상속 모델은 사실 클래스 기반보다 강력한 방법이다. 자바스크립트의 상속 구현 방식은 크게 두 가지로 구분할 수 있다. 하나는 클래스 기반 언어의 상속 방식을 흉내 내는 것(의사 클래스 패턴 상속. Pseudo-classical Inheritance)이고, 두번째는 프로토타입으로 상속을 구현하는 것(프로토타입 패턴 상속. Prototypal Inheritance)이다. 2.1 의사 클래스.. 2023. 9. 28.
JS 공부는 다다익선 - 10. 클로저(closure) 1. 클로저(closure)의 개념 클로저는 자바스크립트만의 고유의 개념이 아니라 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어(Functional Programming language)에서 사용되는 중요한 특성이다. 자신을 포함하고 있는 외부함수보다 내부함수가 더 오래 유지되는 경우, 외부 함수 밖에서 내부함수가 호출되더라도 외부함수의 지역 변수에 접근할 수 있는데 이러한 함수를 클로저(Closure)라고 부른다. 클로저는 반환된 내부함수가 자신이 선언됐을 때의 환경(Lexical environment)인 스코프를 기억하여 자신이 선언됐을 때의 환경(스코프) 밖에서 호출되어도 그 환경(스코프)에 접근할 수 있다. ※ 클로저는 자신이 생성될 때의 환경(Lexical environment)을 기억하는.. 2023. 9. 28.
JS 공부는 다다익선 - 9. 함수 호출과 this 1. 자바스크립에서 this 의 의미 자바스크립트의 함수는 호출될 때, 매개변수로 전달되는 인자값 이외에, arguments 객체와 this를 암묵적으로 전달 받는다. Java에서의 this는 인스턴스 자신(self)을 가리키는 참조변수이다. 하지만 자바스크립트의 경우 해당 함수 호출 방식에 따라 this에 바인딩되는 객체가 달라진다. 2. 함수 호출 방식과 this 바인딩 자바스크립트의 경우 함수 호출 방식에 의해 this에 바인딩할 어떤 객체가 동적으로 결정된다. 다시 말해, 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정되는 것이 아니고, 함수를 호출할 때 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정된다. 함수의 상위 스코프를 결정하는 방식인 렉시컬 스코프(.. 2023. 9. 28.
JS 공부는 다다익선 - 8. 스코프(Scope) 1. 스코프란? 스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다. 자바스크립트는 이 규칙대로 식별자를 찾는다. 변수는 전역 또는 코드 블록(if, for, while, try/catch 등)이나 함수 내에 선언하며 코드 블록이나 함수는 중첩될 수 있다. 식별자는 자신이 어디에서 선언됐는지에 의해 자신이 유효한(다른 코드가 자신을 참조할 수 있는) 범위를 갖는다. 2. 스코프의 구분 자바스크립트에서 스코프를 구분해보면 다음과 같이 2가지로 나눌 수 있다. 전역 스코프 (Global scope): 코드 어디에서든지 참조할 수 있다. 지역 스코프 (Local scope or Function-le.. 2023. 9. 22.