전체 글
-
[ 프로그래머스 / JS ] Lv.1 문자열 내 p와 y의 개수Algorithm/프로그래머스 2022. 12. 29. 15:11
대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 풀이 function solution(s){ if (s.match(/p/gi).length === s.match(/y/gi).length) return true; else return false ..
-
[ JS ] 표준 입력 - process.stdinJavascript/이론 2022. 12. 29. 14:30
먼저 짚고 넘어가야할 것은 process.stdin stream은 표준 입력 데이터를 읽기위해 사용되는 Node.js의 내장 stream이다. 실제로 브라우저에서는 사용할 수 없고 window.prompt, window.alert 등을 사용해야한다. process.stdin.setEncoding('utf8') process.stdin의 인코딩 방식을 세팅. 주로 모든 유니코드 문자를 나타낼 수 있는 UTF-8을 사용한다. process.stdin.on('data', dat a => { ... } ) 데이터를 수신할 때 마다 호출되는 이벤트 리스너이다.콜백 함수로 넘겨지는 'data' 인자는 수신받은 데이터를 담고있는 buffer 객체이다. * process.stdin은 읽기 전용 스트림이며 표준 출력을 ..
-
[ 선형 자료구조 ] 연결 리스트 - Singly linked list(단순 연결 리스트)Computer Science/자료 구조 2022. 12. 28. 19:17
연결 리스트는 각각의 요소들이 "노드"에 저장되는 선형 자료 구조이다. 각 노드들은 다음 노드에 대한 참조값을 가지며 이를 "링크"라 한다. 이러한 노드들로 이루어진 연결 리스트는 노드의 link filed를 사용함으로써 데이터의 추가 및 삭제를 모든 리스트 인덱스에 대한 방문 및 재구성 없이 실행 가능하다. 연결 리스트는 스택, 큐, 그래프 등을 구현하는데 자주 사용되며, 그 종류로는 Singly linked list, Doubly linked list 등이 있다. 1. 기본 배경 지식 1) Node 연결 리스트를 구성하는 노드는 Data filed, Linke filed 두 가지 필드로 이루어진 묶음이다. Data filed는 node는 integer, character 등 노드가 보유할 실제 데이터..
-
[프로그래머스 / JS] Lv.1 [1차] 비밀지도Algorithm/프로그래머스 2022. 12. 28. 19:13
문제 설명 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도의 각 가..
-
[프로그래머스 / JS] Lv.1 [1차] 다트 게임Algorithm/프로그래머스 2022. 12. 28. 18:07
문제 설명 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) , 아차상(#..
-
[프로그래머스 / JS] Lv.1 완주하지 못한 선수Algorithm/프로그래머스 2022. 12. 28. 17:19
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해 주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 풀이 function solution(participant, completion) {..
-
[프로그래머스 / JS] Lv.1 모의고사Algorithm/프로그래머스 2022. 12. 28. 16:23
문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작..
-
[JS] .length는 함수가 아니라 프로퍼티이다.Javascript/이론 2022. 12. 28. 16:03
자바스크립트에서 모든 데이터 구조는 객체를 기본 바탕으로 한다. 이는 "내장 객체의 프로토타입을" 검색해 보면 알 수 있는데 다시볼 때 검색하기 귀찮을 게 뻔하니 링크를 남겨놔야겠다. 내장 객체의 프로토타입 ko.javascript.info 결국 핵심은 Array, String, Number 등등 모든 자료형은 prototype을 가지며 이는 자료형.prototype으로 표현되는데, 만약 내가 String이나 Object, Array 등의 자료형을 생성한다면 생성한 객체는 [[Prototype]] 으로 자료형.prototype을 상속받는다. 물론 모든 데이터 구조는 객체를 기본으로 하니 계속해서 [[Prototype]]을 타고 올라가다보면 Object.prototype이 나온다. 아무튼, js에서 모든 ..