목록분류 전체보기 (779)
치춘짱베리굿나이스
최소공배수 문제 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다른 예: 2와 5의 최소공배수는 10이고, 그 이유는 2와 5보다 작은 공배수가 없기 때문이다. 10과 20의 최소공배수는 20이다. 5와 3의 최소공배수는 15이다. 당신은 두 수에 대하여 최소공배수를 구하는 프로그램을 작성 하는 것이 목표이다. 입력 한 줄에 두 정수 A와 B가 공백으로 분리되어 주어진다. 50%의 입력 중 A와 B는 1000(103)보다 작다. 다른 50%의 입력은 1000보다 크고 100000000(108..

문자열의 특정 문자 변경하기 let string = "hello world"; string[2] = "a"; console.log(string); 자바스크립트에서는 문자열의 특정 문자를 인덱스를 통해 변경할 수 없다 인덱스가 문자열의 특정 문자의 포인터를 가리키는 C언어 등과 다르게 자바스크립트는 문자의 참조를 가리키지 않기 때문 그럼 어떻게 let string = "hello world"; string = string.substring(0, 2) + "a" + string.substring(3); console.log(string); 문자열을 잘라서 다시 이어붙이는 수고를 해야 한다 쩝 function replaceAt(string, index, replace) { return string.substr..

뜨악 const arr = new Array(5).fill(new Array(3).fill(0)); arr[1][1] = 1; console.log(arr.join("\n")); 위와 같은 코드를 이용하여 2차원 배열을 만들고 한 칸의 값을 변경해 보았다 모든 줄의 값이 다 변경되는 것을 볼 수 있다 이 이유는 fill() 메서드가 참조만 복사해서 배열을 채우므로, 깊은 복사가 되지 않는 탓이다 new Array() 가 fill 에서 단 한 번만 호출되고, 그 참조로 5개 원소가 채워지는 것이다 C언어로 치자면, 2차원 배열의 각 행이 같은 주소값을 가리킨다고 이해하면 된다 fill 메서드는 원시값으로 배열을 채울 때만 이용하도록 하자 해결법 const arr = Array.from({length: 5}..
숫자 카드 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져..
사탕 박사 고창영 문제 창영이가 드디어 취직을 했다!! 그가 30세까지 취직을 안하던 이유는 바로 마음에 다니는 직장을 찾지 못해서였다. 이번에 창영이가 취직한 곳은 사탕 공장이다. 사탕 공장에 다니면 사탕 처럼 달콤한 직장생활을 할 줄 알았지만, 8시간동안 사탕 품질을 검사해야 하는 작업은 너무나 지루했다. 사탕의 품질은 다음과 같이 검사한다. 가장 먼저 사탕으로 가득 찬 박스를 연다. 그 다음 사탕의 개수와 사탕이 없는 곳의 개수를 센다. 지루함을 견디지 못한 창영이는 결국 품질을 검사하는 프로그램을 작성하기로 했다. r행 c열 행렬이 주어진다. 이 행렬은 박스를 위에서 바라본 것이다. 행렬에는 다음과 같은 문자만 있다. ".": 빈 곳 "o": 사탕의 먹을 수 있는 부분 "v^": 캔디 껍질 사탕은..

this 매우 매우 헷갈리는 그 this이다 전역 스코프에서의 this 브라우저 console.log(this); 브라우저에서의 전역 스코프에서 this는 Window 객체를 가리킨다 Node.js node.js 환경에서의 this는 현재 module.exports 객체를 가리킨다고 한다 브라우저처럼 Global 객체를 가리킬 것 같지만 아니다 const a = 2; // 영향 X module.exports.a = 3; console.log(this); 따라서 해당 객체에 값을 넣으려면 module.exports 를 해 주어야 한다 console.log(globalThis); globalThis 가 global 객체를 가리킨다 함수 호출 시의 this 단순 호출 function foo() { consol..
카약 문제 상근이는 카약 대회를 개최했다. 대회는 전세계에 생중계되고, 위성이 경기장 전체를 촬영하고 있다. 상근이는 위성 사진을 바탕으로 실시간 순위를 계산하는 프로그램을 만들려고 한다. 위성 사진은 R행 C열이다. 모든 줄의 첫 번째 글자는 'S'이고 출발선을 의미한다. 또, 마지막 글자는 'F'이고 이것은 결승선을 의미한다. 대회에 참가한 팀은 총 9팀이고, 각 팀은 1부터 9까지 번호가 매겨져 있다. 카약은 항상 열에 대해 연속하는 세 칸을 차지하며, 카약 번호로 표시한다. 마지막으로 물은 '.'로 나타나 있다. 팀의 순위는 결승선으로부터 떨어진 거리로 측정한다. 가까울수록 순위가 높다. 만약, 두 팀이 결승선과 떨어진 거리가 같다면, 같은 등수이다. 입력 첫째 줄에 R과 C가 주어진다. 다음 R..
카드1 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 버린 카드들은 순서대로 1 3 2가 되고, 남는 카드는 4가 된다. N이 주어졌을..