전체 글

전체 글

    백준 / 기본 수학 1 / 2292번 / 벌집 / C++

    문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지 (시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 예제 입력 1 13 예제 출력 1 3 #include int main() { int n; int i = 0; scanf("%d", &n..

    백준 / 기본 수학 1 / 1712번 / 손익분기점 / C++

    문제 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간, 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다. A, B, C가 주어..

    Modern Javascript / 함수 심화학습

    목차 재귀와 스택 나머지 매개변수와 전개 문법 변수의 유효범위와 클로저 오래된 'var' 전역 객체 객체로서의 함수와 기명 함수 표현식 new Function 문법 setTimeout과 setInterval을 이용한 호출 스케줄링 call/aply와 데코레이터, 포워딩 함수 바인딩 화살표 함수 다시 살펴보기 재귀와 스택 문제 해결을 하다 보면 함수에서 다른 함수를 호출해야 할 때가 있다. 이때 함수가 자기 자신을 호출할 수도 있는데, 이를 재귀라고 부른다. 두 가지 사고방식 재귀와 스택 ko.javascript.info 가장 처음 하는 호출을 포함한 중첩 호출의 최대 개수는 재귀 깊이(recursion depth)라고 한다. pow(x, n)의 재귀 깊이는 n이다. 자바스크립트 엔진은 최대 재귀 깊이를 ..

    Modern Javascript / 코드 품질 - Chrome으로 디버깅

    Chrome으로 디버깅하기 디버깅은 스크립트 내 에러를 검출해 제거하는 일련의 과정을 의미한다. 모던 브라우저와 호스트 환경 대부분은 개발자 도구 안에 UI 형태로 디버깅 툴을 구비해 놓는다. 디버깅 툴을 사용하면 디버깅이 훨씬 쉬워지고, 실행 단계마다 어떤 일이 일어나는지를 코드 단위로 추적할 수 있다. 중단점 줄 번호를 클릭하면 중단점을 설정할 수 있다. 중단점을 이용하면 실행이 중지된 시점에 변수가 어떤 값을 담고 있는지 알 수 있다. 또한 실행이 중지된 시점을 기준으로 명령어를 실행할 수도 있다. debugger 명령어 function hello(name) { let phrase = `Hello, ${name}!`; debugger; // 여기서 실행이 멈춘다 say(phrase); } debug..

    Modern Javascript / 자료구조와 자료형

    목차 원시값의 메서드 숫자형 문자열 배열 배열과 메서드 iterable 객체 맵과 셋 위크맵과 위크셋 Object.keys, values, entries 구조 분해 할당 Date 객체와 날짜 JSON과 메서드 원시값의 메서드 원시값: 원시형 값이다. 원시형의 종류는 문자(string), 숫자(number), bigint, 불린(boolean), 심볼(symbol), null, undefined 형으로 총 일곱 가지 이다. 객체: 프로퍼티에 다양한 종류의 값을 저장할 수 있다. {name: "John", age: 30}와 같이 대괄호 {}를 사용해 만들 수 있다. 함수도 객체의 일종이다. 숫자형 숫자를 입력하는 다양한 방법 let billion = 1000000000; billion = 1bn; billi..

    Modern Javascript / 객체: 기본

    객체 객체형은 원시형과 달리 다양한 데이터를 담을 수 있다. 키로 구분된 데이터 집합이나 복잡한 개체를 저장할 수 있다. 객체는 중괄호 {...}를 이용해 만들 수 있다. 중괄호 안에는 '키(key): 값(value)' 쌍으로 구성된 프로퍼티를 여러개 넣을 수 있다. 키엔 문자형, 값엔 모든 자료형이 허용된다. // 객체를 생성하는 두가지 문법 let user = new Object(); // '객체 생성자' 문법 let user = {}; // '객체 리터럴' 문법 리터럴과 프로퍼티 let user = { // 객체 name: "John", // 키: "name", 값: "John" age: 30 // 키: "age", 값: 30 "likes birds": true // 복수의 단어는 따옴표로 묶어야 ..