[TIL] d+11
👨💻
-
오늘은 정말 졸려서 일찍 자야겠다.
(라고 11시에 써놓고 또 1시가 넘었다...!😫)
-
게더가 사용자도 많고 캠도 계속 공유를 하고 있어서 그런지 cpu 점유율을 생각보다 꽤 먹는다. 검색해 보니 가끔 점유율이 폭등하는 버그가 발생하기도 하는 것 같구... 나의 소중한 19년생 컴퓨터쿤에겐 조금 힘겨운 모양이야...... 🥺 취업하면 컴퓨터부터 새로 맞출 거야... 그 의지 하나로 계속 달리고 있다.
-
오늘 CS스터디는 내가 발표할 차례라 열심히 준비를 했는데, 갑자기 4챕터부터 난데없이 과학시간이 돼버려서 당황스러웠다 ㅋㅋㅋ 간만에 학교 다닐 때 생각나서 재밌었음...
https://cat-quiver-27e.notion.site/chapter-4-0d0be346cdf44a7ab239eb5f96338ee9
-
요즘 코딩할 때 드래그하고 괄호나 따옴표 누르면 자동으로 싹 감싸지는 거 그새 버릇됐는지 아무 데서나 막 써가지고 텍스트 날려먹은 게 한두 번이 아니다...
오늘 읽었던 재미있는 글
브라우저 로딩 동안의 사용자 경험을 개선하는 방법
https://eunjinii.tistory.com/44
평창올림픽 드론쇼 만들기
https://velog.io/@heekang/Vanilla-JS-평창올림픽-드론쇼-만들기
이거 보고 prototype 이해 못하면 강의접음
https://youtu.be/wUgmzvExL_E
오늘 풀지 못한 문제
모의고사
오늘은 정말 졸려서 일찍 자야겠다.
(라고 11시에 써놓고 또 1시가 넘었다...!😫)
게더가 사용자도 많고 캠도 계속 공유를 하고 있어서 그런지 cpu 점유율을 생각보다 꽤 먹는다. 검색해 보니 가끔 점유율이 폭등하는 버그가 발생하기도 하는 것 같구... 나의 소중한 19년생 컴퓨터쿤에겐 조금 힘겨운 모양이야...... 🥺 취업하면 컴퓨터부터 새로 맞출 거야... 그 의지 하나로 계속 달리고 있다.
오늘 CS스터디는 내가 발표할 차례라 열심히 준비를 했는데, 갑자기 4챕터부터 난데없이 과학시간이 돼버려서 당황스러웠다 ㅋㅋㅋ 간만에 학교 다닐 때 생각나서 재밌었음...
https://cat-quiver-27e.notion.site/chapter-4-0d0be346cdf44a7ab239eb5f96338ee9
요즘 코딩할 때 드래그하고 괄호나 따옴표 누르면 자동으로 싹 감싸지는 거 그새 버릇됐는지 아무 데서나 막 써가지고 텍스트 날려먹은 게 한두 번이 아니다...
브라우저 로딩 동안의 사용자 경험을 개선하는 방법
https://eunjinii.tistory.com/44
평창올림픽 드론쇼 만들기
https://velog.io/@heekang/Vanilla-JS-평창올림픽-드론쇼-만들기
이거 보고 prototype 이해 못하면 강의접음
https://youtu.be/wUgmzvExL_E
https://programmers.co.kr/learn/courses/30/lessons/42840
참고 링크
https://medium.com/@760kry/자바스크립트-알고리즘-모의고사-c9da0802bcb4
점수 count를 올릴 때 왜 조건문에서 인덱스를 길이로 나눈 나머지 값을 구하는 건가 했는데, 아주 간단한 이유였다.
수포자1 = [1, 2, 3, 4, 5]
수포자1이 1번 문제에 작성한 답 = 1 = 수포자1[0]
수포자1이 2번 문제에 작성한 답 = 2 = 수포자1[1]
수포자1이 3번 문제에 작성한 답 = 3 = 수포자1[2]
수포자1이 4번 문제에 작성한 답 = 4 = 수포자1[3]
수포자1이 5번 문제에 작성한 답 = 5 = 수포자1[4]
수포자1이 6번 문제에 작성한 답 = 1 = 수포자1[5]?
배열 내의 인덱스를 돌고 있을 땐 괜찮지만, 배열에 존재하는 인덱스를 넘어섰을 때, 예를 들어 배열 내에 수포자 1이 6번 문제(i=5)의 정답을 입력했을 때에 대한 값은 존재하지 않기 때문에(해당 배열의 길이=5) 당연히 요소를 찾을 수 없게 되는데, 해당 배열의 길이로 나누어 나머지를 인덱스로 삽입하면 다시 첫 인덱스부터 돌아갈 수 있었다............
ex)
수포자1[5 % 배열의길이(5)] = 수포자1[0]
수포자1[6 % 배열의길이(5)] = 수포자1[1]
오늘 푼 문제
같은 숫자는 싫어
https://programmers.co.kr/learn/courses/30/lessons/12906
function solution(arr){
let answer = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== arr[i+1]) {
// arr.splice(i, 1)
// console.log(arr)
answer.push(arr[i])
}
}
return answer;
}
처음엔 i번째의 요소와 바로 다음 요소를 비교해 수가 같을 경우, splice를 사용하여 삭제해버리는 방식으로 진행했으나, 앞의 요소를 삭제하면 나머지 요소들이 빈자리를 채워 앞으로 당겨지기 때문에 그다음 번의 반복문이 돌 때 처음의 의도대로 돌아가지 않는다.
때문에 기존의 배열은 그대로 두고, 대신 중복된 숫자들을 빈 배열 answer에 push해버리는 방식으로 진행하였다.
splice를 사용한다고 해결하지 못하는 것은 아니지만 효율성 검사에서 막히는 듯.
두 개 뽑아서 더하기
https://programmers.co.kr/learn/courses/30/lessons/68644
function solution(numbers) {
let answer = [];
for(let i = 0; i < numbers.length-1; i++){
for(let j = i+1; j < numbers.length; j++){
let sum = numbers[i] + numbers[j]
if(answer.indexOf(sum) < 0){
answer.push(sum)
}
}
}
return answer.sort((a,b) => a-b)
}
서로 다른 인덱스의 숫자를 뽑아야 하기 때문에 반복문을 중첩하여 돌렸다.
같은 배열의 서로 다른 위치에 있는 두 요소를 더한 뒤, 조건문을 돌려 answer 배열에 반복문을 돌려 나온 sum들이 존재하지 않을 경우 answer에 push한다.
로또의 최고 순위와 최저 순위
https://programmers.co.kr/learn/courses/30/lessons/77484
function solution(lottos, win_nums) {
let rank = [6, 6, 5, 4, 3, 2, 1];
let answer = 0;
let zero = 0;
// for(let i = 0; i < lottos.length; i++) {
// for (let j = 0; j < lottos.length; j++) {
// if (lottos[i] == win_nums[j]) answer++;
// }
// if (lottos[i] == 0) zero++;
// }
// console.log(rank[answer-1])
// console.log(zero)
// return [rank[answer-1],rank[answer+zero]];
for(let i = 0; i < lottos.length; i++) {
if (lottos[i] == 0) zero++;
for (let j = 0; j < lottos.length; j++){
if (lottos[i] == win_nums[j]) answer ++;
}
}
return [rank[answer+zero], rank[answer]]
}
주석 처리된 코드는 뇌가 굴러가는 대로 짰던 첫 코드... 물론 실패했다
먼저 반복문을 돌리면서 0을 찍은 번호가 있는지 확인해 zero 변수에 1씩 카운트한다.
그리고 다시 반복문을 중첩해 사용자가 찍은 번호 중 당첨자 번호와 같은 번호가 있을 경우 answer 배열에 1씩 카운트한다.
마지막으로 rank 배열의 answer+zero번째, rank 배열의 answer번째 요소를 같이 찍어 return하며 종료한다.
문자열 내 마음대로 정렬하기
https://programmers.co.kr/learn/courses/30/lessons/12915
function solution(strings, n) {
let answer = [];
let n_str = [];
for (let i = 0; i < strings.length; i ++) {
n_str.push(strings[i][n] + strings[i])
}
n_str.sort()
for (let j = 0; j < n_str.length; j++) {
answer.push(n_str[j].replace(n_str[j][0], ''))
}
return answer;
}
간단하게 설명하자면 문자 strings의 n번째 글자를 맨 앞에도 붙여 넣어 해당 글자를 기준으로 정렬한 뒤 다시 맨 앞의 글자를 지워버린다.
문자열 내림차순으로 배치하기
https://programmers.co.kr/learn/courses/30/lessons/12917
function solution(s) {
let answer = s.split('').sort().reverse().join('');
return answer;
}
적혀있는 그대로... 잘라서 배열로 만들고 정렬하고 뒤집고 다시 문자열로 만들었다. 이건 저번에 풀었던 문제와 아주... 유사했다!
내일부턴 드디어 3주간 주특기 주간이다
기대되고 두려워~~ 두렵다~~
하지만 또 능히(는 아닐지라도) 할 수 있을 것이다~~
Author And Source
이 문제에 관하여([TIL] d+11), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@greeneryyyyy/TIL-d11저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)