컴퓨터 구조와 프로그래밍 독서
2장 전자 회로의 조합 논리
디지털 컴퓨터의 사례
https://traveling-wallaby-56e.notion.site/2-61c7c69ec0754265a9326a9e264df2d0
git 강의
branch와 merge에 대하여 배웠다.
원격에 브랜치를 푸시할 때 일어나는 일들은 아직 조금 생소한 것 같다.
항해99에서 골라준 54문제의 코딩 테스트를 완료했다.
https://github.com/fancyers/programmers/tree/main
OBS를 활용해서 코딩 테스트 풀이 영상을 찍었다.
코딩 테스트 회고
https://programmers.co.kr/learn/courses/30/lessons/67256
키패드 형태가 아니라 1차원 array로 생각했으면 풀기 더 쉬웠을 것 같다.
앞으로의 코딩 테스트 문제에서도 1차원 array로 푸는 것을 먼저 고려해보자.
function distance(a,b) {
let ax = parseInt(a/3)
let ay = a%3
let bx = parseInt(b/3)
let by = b%3
return Math.abs(ax-bx)+Math.abs(ay-by)
}
let lf = 9
let rf = 11
function solution(numbers, hand) {
let answer = ''
for (let i=0;i<numbers.length;i++) {
let input
if (numbers[i] == 0) input = 10
else input = numbers[i] - 1
if (input==0|input==3|input==6) {
lf = input
answer += 'L'
} else if (input==2|input==5|input==8) {
rf = input
answer += 'R'
} else if (input==1|input==4|input==7|input==10) {
if (distance(lf,input) < distance(rf,input)) {
lf = input
answer += 'L'
} else if (distance(lf,input) > distance(rf,input)) {
rf = input
answer += 'R'
} else {
if (hand == 'right') {
rf = input
answer += 'R'
} else {
lf = input
answer += 'L'
}
}
}
}
return answer
}
다시 풀어보니 아주 잘 풀렸다.
if (input==0|input==3|input==6) 이런 표현을 짧게 쓰는 방법이 있을까?
'Development' 카테고리의 다른 글
[TIL] CS 공부, 코딩테스트, JavaScript (0) | 2022.01.20 |
---|---|
[TIL] CS 책 읽기, JS 코딩 테스트, Git 강의 (0) | 2022.01.19 |
[TIL] programmers 키패드 누르기, git 강의 (0) | 2022.01.17 |
[TIL] 자바스크립트 코딩테스트, CS 책 독서 (0) | 2022.01.16 |
[WIL] 항해99의 첫 주 (0) | 2022.01.16 |