개요결론부터 말하자면 현재 알 수 없는 이유로, 갑작스럽게 깃허브 계정이 정지된 상태입니다.아래의 내용은 계정 정지를 풀어나가고자 기록해둔 과정이라고 보시면 되겠습니다. 2024-09-20, 1:00 시점평소처럼 깃허브 내에서 조직(Organization)을 생성하고, 멤버를 초대하려고 했습니다.분명 이전에는 잘 되었었는데, 이번에는 한 가지 문제가 발생했습니다. 다름이 아니고 메시지와 함께 팀원이 초대가 안 된 것이었습니다.You can't do that at this time. 난생 처음 보는 메시지였는데... 대체 어떻게 해야 할지를 모르겠더군요.왜냐하면 구글에 검색을 하더라도 별 다른 답변이 안 보였기 때문입니다. 아마 흔한 경고 메시지는 아닌 느낌이었습니다.그래서 꼬박 하루 동안 이리저리 메뉴를..
전체 글
프론트엔드, 백엔드, 앱, 웹 등을 다루는 Jukrap의 프로그래밍 및 개발 블로그. 사실 일상도 다룸.개요문제 이름: 호텔 대실 (155651) 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/155651플랫폼: 프로그래머스알고리즘 분류: 그리디소요 시간: 4시간 20분 문제 전문설명제한사항입출력 문제 풀이해설호텔을 운영 중인 코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 합니다. 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다. 예약 시각이 문자열 형태로 담긴 2차원 배열 book_time이 매개변수로 주어질 때, 코니에게 필요한 최소 객실의 수를 반환하는 함수를 완성하는 것이 문제의 목표입니다. 문제 해결을 위한 접근 방식은 아래와 같습니다.시간 표현 변환: 주어진 시각 형..
개요문제 이름: 무인도 여행 (154540) 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/154540플랫폼: 프로그래머스알고리즘 분류: 일반소요 시간: 5시간 문제 전문설명제한사항입출력 문제 풀이해설이 문제는 2차원 격자 형태의 지도에서 연결된 무인도를 탐색하고, 각 무인도에서 최대로 머물 수 있는 일수를 계산하는 문제입니다. 문제를 해결하기 위해서는 그래프 탐색 알고리즘 중 하나인 깊이 우선 탐색(DFS)을 활용합니다. DFS는 그래프의 한 노드에서 시작하여 인접한 노드를 먼저 탐색하는 방식으로 진행됩니다. 즉, 한 방향으로 갈 수 있을 때까지 깊이 탐색하다가 더 이상 갈 수 없게 되면 이전 노드로 돌아와서 다른 방향으로 탐색을 ..
개요문제 이름: [3차] 방금그곡 (17683) 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/17683플랫폼: 프로그래머스알고리즘 분류: 일반소요 시간: 7시간 문제 전문설명입출력 문제 풀이해설이 문제는 네오가 기억하고 있는 멜로디를 바탕으로 실제로 방송된 음악을 찾는 문제입니다. 문제 해결을 위해서는 주어진 음악 정보를 바탕으로 실제로 재생된 멜로디를 구하고, 네오가 기억하고 있는 멜로디가 그 안에 포함되어 있는지를 확인해야 합니다. 문제 해결을 위한 접근 방식은 다음과 같습니다.네오가 기억하고 있는 멜로디와 음악 정보의 멜로디에서 '#'이 붙은 음을 소문자로 변환합니다.이는 같은 음임에도 불구하고 '#'의 유무에 따라 다른 음으..
소스코드의 타입ECMAScript 사양은 소스코드를 4가지 타입으로 구분한다.전역 코드(global code): 전역에 존재하는 소스코드. 전역에 정의된 함수, 클래스 등의 내부 코드는 포함되지 않는다.함수 코드(function code): 함수 내부에 존재하는 소스코드. 함수 내부에 중첩된 함수, 클래스 등의 내부 코드는 포함되지 않는다.eval 코드(eval code): 빌트인 전역 함수인 eval 함수에 인수로 전달되어 실행되는 소스코드.모듈 코드(module code): 모듈 내부에 존재하는 소스코드. 모듈 내부의 함수, 클래스 등의 내부 코드는 포함되지 않는다.소스코드(실행 가능한 코드)를 4가지 타입으로 구분하는 이유는 소스코드의 타입에 따라 실행 컨텍스트를 생성하는 과정과 관리 내용이 다르기..
개요문제 이름: 귤 고르기 (138476)문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/138476플랫폼: 프로그래머스알고리즘 분류: 일반소요 시간: 1시간 문제 전문설명제한사항입출력 문제 풀이해설이 문제는 귤의 크기별 개수를 파악하여, 최소한의 종류로 k개의 귤을 고르는 문제입니다. 문제 해결을 위해 먼저 귤의 크기별 개수를 파악하고, 개수가 많은 순서대로 귤을 고르는 그리디 알고리즘을 적용할 수 있습니다. 문제 접근 방식은 다음과 같습니다.귤의 크기별 개수를 파악하기 위해 객체(sizeCount)를 생성합니다.주어진 배열(tangerine)을 순회하면서 각 크기의 귤이 몇 개 있는지 객체에 저장합니다.객체의 값(귤의 개수)을 배열..
this 키워드객체 지향 프로그래밍에서 객체는 상태(state)를 나타내는 프로퍼티와 동작(behavior)을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조이다. 동작을 나타내는 메서드는 자신이 속한 객체의 상태, 즉 프로퍼티를 참조하고 변경할 수 있어야 한다. 이때 메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다. const circle = { // 프로퍼티: 객체 고유의 상태 데이터 radius: 5, // 메서드: 상태 데이터를 참조하고 조작하는 동작 getDiameter() { // 이 메서드가 자신이 속한 객체의 프로퍼티나 다른 메서드를 참조하려면 // 자신이 속한 객체인 circle을 참조..
자바스크립트 객체의 분류자바스크립트 객체는 다음과 같이 크게 3가지로 분류할 수 있다. 표준 빌트인 객체(standard built-in objects/native objects/global objects)ECMAScript 사양에 정의된 객체로, 애플리케이션 전역의 공통 기능을 제공한다.자바스크립트 실행 환경(브라우저나 Node.js)과 관계없이 언제나 사용할 수 있다.표준 빌트인 객체는 전역 객체의 프로퍼티로 제공되므로 별도의 선언 없이 전역 변수처럼 언제나 참조할 수 있다. 호스트 객체(host objects)ECMAScript 사양에 정의되어 있지는 않지만, 자바스크립트 실행 환경에서 추가로 제공하는 객체를 말한다.브라우저 환경에서 DOM, BOM, Canvas, XMLHttpRequest, fe..
개요문제 이름: 멀쩡한 사각형 (62048)문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/62048플랫폼: 프로그래머스알고리즘 분류: 일반소요 시간: 40분 문제 전문설명제한사항입출력 문제 풀이해설이 문제는 격자 형태로 그어진 직사각형 종이에서 대각선으로 잘라낸 후 사용할 수 있는 정사각형의 개수를 구하는 문제입니다. 문제 해결을 위해서는 전체 사각형의 개수에서 대각선에 의해 잘린 사각형의 개수를 빼는 방식을 사용할 수 있습니다. 문제에서 주어진 조건은 다음과 같습니다.가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다.종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있습니다.모든 격자칸은 1cm x 1c..
개요문제 이름: 예상 대진표 (12985)문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12985플랫폼: 프로그래머스알고리즘 분류: 일반소요 시간: 30분 문제 전문설명제한사항입출력 문제 풀이해설이 문제는 토너먼트 형식의 대회에서 두 참가자가 몇 번째 라운드에서 만나는지를 찾는 문제입니다. 문제를 해결하기 위해서는 라운드를 진행하면서 A와 B의 위치를 업데이트하는 방식을 사용할 수 있습니다. 문제에서 주어진 조건은 다음과 같습니다.N명의 참가자는 1부터 N번까지 번호를 배정받습니다.1번 2번, 3번 4번, ... , N-1번N번의 참가자끼리 게임을 진행합니다.각 게임에서 이긴 사람은 다음 라운드에 진출합니다.다음 라운드에 진출할 참..
개요자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다. 자바스크립트를 이루고 있는 거의 "모든 것"이 객체이며, 객체 기반의 프로그래밍 언어라고 할 수 있다. 객체지향 프로그래밍객체지향 프로그래밍은 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임을 말한다. 객체지향 프로그래밍에서는 실세계의 실체(사물이나 개념)를 인식하는데, 실체는 특징이나 성질을 나타내는 속성을 가지고 있고 이를 통해 실체를 인식하거나 구별한다. 다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것을 추상화라고 한다. 이처럼 속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조를 객체라고 하며, 객체의 상태를 프로퍼티, 동작을 메서드라..
일급 객체자바스크립트에서는 다음과 같은 조건을 만족하는 객체를 일급 객체라고 한다.무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.변수나 자료 구조(객체, 배열 등)에 저장할 수 있다.함수의 매개변수에 전달할 수 있다.함수의 반환값으로 사용할 수 있다.자바스크립트의 함수는 위의 조건을 모두 만족하므로 일급 객체이다. 다음 코드를 통해 함수가 일급 객체임을 확인할 수 있다.// 1. 함수는 무명의 리터럴로 생성할 수 있다.// 2. 함수는 변수에 저장할 수 있다.// 런타임(할당 단계)에 함수 리터럴이 평가되어 함수 객체가 생성되고 변수에 할당된다.const increase = function (num) { return ++num;};const decrease = function (num..
개요문제 이름: 이진 변환 반복하기 (70129)문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/70129플랫폼: 프로그래머스알고리즘 분류: 일반소요 시간: 1시간 문제 전문설명제한사항입출력 문제 풀이해설이 문제는 문자열 변환과 반복 처리를 요구하는 알고리즘 문제입니다. 주어진 이진 문자열에 대해 특정 규칙에 따라 변환을 반복하고, 그 과정에서 발생하는 변화를 추적해야 합니다. 문제를 해결하기 위해서는 아래와 같은 접근 방식이 필요합니다.문자열에서 0을 제거하는 과정남은 1의 개수를 세는 과정1의 개수를 다시 이진 문자열로 변환하는 과정이 과정을 반복하면서 변환 횟수와 제거된 0의 개수를 추적하는 과정 문제에서 실질적으로 요구하는 내용..
서론객체 리터럴에 의한 객체 생성 방식의 단점을 보완하기 위해 생성자 함수에 의한 객체 생성 방식이 있다. Object 생성자 함수new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다.// 빈 객체의 생성const person = new Object();// 프로퍼티 추가person.name = "Lee";person.sayHello = function () { console.log("Hi! My name is " + this.name);};console.log(person); // {name: "Lee", sayHello: ƒ}person.sayHello(); // Hi! My name is Lee생성자 함수..
var 키워드로 선언한 변수의 문제점ES5까지 변수를 선언할 수 있는 유일한 방법은 var 키워드였다. var 키워드는 다음과 같은 특징이 있는데, 이는 다른 언어와 차별되는 특징으로 주의를 기울이지 않으면 심각한 문제를 일으킬 수 있다. 변수 중복 선언 허용var x = 1;var y = 1;var x = 100; // 초기화문이 있는 변수 선언문은 var 키워드가 없는 것처럼 동작한다.var y; // 초기화문이 없는 변수 선언문은 무시된다.console.log(x); // 100console.log(y); // 1var 키워드로 선언한 변수는 중복 선언이 가능하다. var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용한다. 초기화문이 있는 변수 선언문은 자바스크립트 엔진..