WHAT I LEARNED 114

[프로그래머스 / 자바스크립트] 폰켓몬

오늘의 문제는 폰켓몬! 제목은 너무나도 귀엽지만 문제 글자수는 썩 귀엽지않은 문제다ㅎㅎ.. 제일 다양한 포켓몬을 고를 수 있는 방법을 찾고 그에 해당하는 포켓몬 종류 번호의 개수를 리턴하는 문제. 입출력 예를 보니, ✔️일단 result의 최댓값은 nums.length / 2 ✔️중복된 숫자 제거 먼저 진행해야 하나? ✔️그래서 result의 최댓값이 num.length / 2보다 크거나 작을 때로 구분해야하나? 이런 생각들이 들었다. 일단 배열 내 중복부터 제거하기로! 배열 내 중복 제거 방법은 여러가지가 있지만, 내가 선택한 방법은 Set! 먼저 new Set(nums)로 중복값이 있는 배열을 Set객체로 만들어서 중복을 제거하고, [...set]로 Set객체를 다시 배열로 변환하였다. 전개연산자라고..

[프로그래머스 / 자바스크립트] K번째수

문제만 읽었을 때 파악해본 것은 ✔️array의 i ~ j번째는 배열 내에서 i-1번째 ~ j-1번째 ✔️배열 자르기는 slice? ✔️그럼 slice를 쓰고 sort로 정렬 한 번 시킨 후 배열 내의 k-1번째 값 리턴하기 이 정도였다. 문제 자체는 파악하기가 쉬웠다. 문제는 commands값이 2차원 배열로 되어있어 리턴할 내용이 여러개라는 것.. 🤯 (= 내가 잘 못하는 것들 중 하나) 행렬의 덧셈부터 2차원 배열에 치여버린 나는 이거 보고 한숨 푹..for중첩문을 돌려야할까? 일단 간단하게 생각해서 돌려봤는데 commands[0]의 결과값이 도출되긴 했다. 그런데 문제는 1️⃣ return이 for문 바깥으로 나오면 값 도출이 어렵다는 것과 2️⃣ +=로 붙여주어도 commands[i]의 값들이 ..

논리게이트 출력 유형, 회로

- 논리게이트 1. 이력 현상을 활용한 잡음 내성 향상 2. 차동 신호 3. 전파 지연 4. 출력 유형 1) 토템폴 출력 2) 오픈 컬릭터 출력 3) 트라이스테이트 출력 - 게이트를 조합한 복잡한 회로 1. 가산기 2. 디코더 3. 디멀티플렉서 4. 셀렉터 출력이 1(True)일 때만 동작을 할까? 정답은 x 입력이 1이면 회로가 동작하고, 0이면 동작하지 않는다는 'active high'에 해당되는 상황. 입력이 1이 아닌 0을 내보냈음에도 동작하는 것들을 'active low'로 동작한다고 한다. '무조건 출력이 1이어야 회로가 동작한다'는 x! - 초기에 전압을 기준으로 논리를 표현 : 전류를 흐르면 1아니면 0 - 각 논리의 출력 전압에서 스위칭 전압강하 만을 고려하므로 최소 이 전압보다는 큰 마..

WHAT I LEARNED/etc. 2022.01.25

[프로그래머스 / 자바스크립트] 문자열 내 마음대로 정렬하기

어렵다 어려워,, 각 단어인 문자열(strings[i])의 n번째 자리 값을 도출해내고, 그 값의 오름차순으로 strings[i]들을 정렬. n번째 자리가 동일할 경우 사전순으로 정렬. 이 때는 strings[i]의 0번째부터 비교하게끔. . . (💥정답 아님) function solution(strings, n) { var answer = []; for (var i=0; i 0 인 경우 b , a 순으로 정렬 compareFunction이 0을 반환하면 a, b를 변경x (그대로) //오름차순// arr.sort(function(a,b) { return(a-b); }); // 화살표 함수 적용하면 // arr.sort(function(a,b) => a-b); 내림차순으로 하려면 a-b를 b-a로 수정해..

고정소수점, 부동소수점, IEEE754 (왕초보 버전)

순서 Ⅰ. 실수를 표현하는 방법 1. 고정소수점 표현법 2. 부동소수점 표현법 3. IEEE 부동소수점 수 표준 Ⅱ. 2진 코드화한 10진수 시스템 Ⅰ. 실수를 표현하는 방법 1. 고정소수점 표현법 소수점의 위치를 기준으로 정수부랑 소수부를 표현하는 비트로 구분. 이 때 소수점의 위치는 비트별로 정해져있기때문에 '고정'소수점 표현법이라고 한다. 2진법으로 표현한 것을 그대로 집어넣는 방식. 👍🏻 장점 - 사용이 편리하다. 👎🏻 단점 - 실숫값을 표현하기 위해 필요한 비트 개수가 너무 많다. ( = 표현 방식의 한계) Ⅰ. 실수를 표현하는 방법 2. 부동소수점 표현법 넓은 범위의 수를 다루기 위해 '과학적 표기법'을 2진수에 적용한 표현법. R = +- m * 2^n R = 10진수를 2진수로 변환한 값 ..

WHAT I LEARNED/etc. 2022.01.24

[프로그래머스 / 자바스크립트] 같은 숫자는 싫어

난이도가 중이 되자마자 잔뜩 길어진 문제. 차근차근 읽고 , 입출력 예까지 확인하고 뭘 말하는 문제인지까지는 이해 완료. 그리고 배열의 정렬에 손대지 말라, 즉, sort 등의 사용 금지가 문제의 포인트인듯 하다. 췌,, 그럼 배열의 정렬엔 손을 대지 않고, 배열 내 중복 요소들을 찾아서 삭제하여 리턴하는 방법이라는건가?? (💥엉망코드) function solution(arr){ var answer = []; var set = new Set(arr); var new_arr = [...set] return new_arr; } 배열의 중복, 배열의 삭제 등등 많은 키워드를 찾아보았더니 뭔가 비슷해보이는 걸 하나 발견! 중복없는 데이터 표현이 가능한 set 객체를 이용여 배열의 중복을 없애고, [...set]..

[프로그래머스 / 자바스크립트] 콜라츠 추측

처음으로 도움이 되지 않았던 입출력 예... 비문학같았지만, 차근차근 정리해보니 수식 몇 개와 조건문 몇 개로 나누어지는 것을 알 수 있었다. 일단 작업에 있는 조건들을 다 if문으로 정리를 했고, for문으로 500까지 반복해야 할 것이라 생각했다. 그리고 일단 그냥 정리한것을 토대로 코드를 작성해보았다. (⚡️엉망코드) function solution(num) { var answer = 0; for (var i = 0; i

[프로그래머스/ 자바스크립트] 자연수 뒤집어 배열로 만들기

문제의 포인트라고 생각했던 곳은 자연수를 배열 형태로 return 하는 것 : answer에 push로 넣는걸까? 붙어있는 숫자를 따로 떼어내는 것 그 떼어낸 숫자 사이에 쉼표를 집어넣는 것 이정도로 생각했다. 문제는 이걸 구현하는 방법이 어떤게 있느냐,,🤫 우선, 문자열 뒤집기로 검색했을 때 눈에 띄는 정보가 있었다. 바로 str.split('').reverse().join(''); 1️⃣ split를 사용해 문자열(str)을 배열로 변환하여, 2️⃣ reverse로 배열로 변환한 것의 순서를 뒤집어주고, 3️⃣ join으로 다시 문자열로 합쳐주는 과정을 의미한다. 이 때, join 뒤에 빈칸으로 두면 문자열로 합쳐질 때 사이에 ','가 자동으로 들어간다고 한다. 이 점까지 내가 지금 풀 문제에 잘 적..

[프로그래머스 / 자바스크립트] 수박수박수박수박수박수?

오늘의 첫번째 담당 문제. 뭔가 신박해보이는 문제가 나왔다. 토요일에 머리가 꽉 찬 상태로 보려고 하니 전혀 읽히지 않았던 문제!ㅎ 오늘 차근차근 뜯어보니 n의 숫자만큼 문자열을 반복해야 하니까 'for문'을 사용. 단 '길이'가 n이라고 했으므로 for문에서 n.length가 아니라 그냥 n사용. 반복해서 단어를 표현해야하므로 '별 찍기 활용' 로 이해를 하고, 일단 코드부터 작성해보기로 했다. 💡 나의 코드 function solution(n) { var answer = ''; var word = '수박' for (let i=0; i

[프로그래머스 / 자바스크립트] 내적

오전에는 안풀리는 문제들 투성이라 살짝 우울해져있었는데 오후 문제는 엄청 쉬운 문제를 만났다 😙 너무 쉽게 풀려서 약간 '엥?'스러울 정도! 친절하게 내적이 어떤 공식이 알려주는 착하디 착한 문제.. 그래도 문제만 덜렁 봤을 때는 사실 잘 공식이 눈에 들어오지 않았다. 바로 입출력 예를 봤다. 역시나, 입출력 보니까 이해가 빡! 두 개의 배열에서 같은 위치에 있는 요소들끼리 곱하고 그걸 싹 다 더하는게 포인트 ! 역시나 for문이 사용된다. 할당받은 문제들이 전체적으로 for문이 빠지지를 않는다! . . . 💡나의 코드 function solution(a, b) { var answer = 0; for (let i=0; i