Algorithm 236

코딩테스트를 위한 python 문법

코딩테스트를 위한 python 문법 코테 언어를 고민하다 파이썬으로 정착하기로 생각하면서 필요한 문법 정리 출처: 이코테 숫자 자료형 ( Number ) 정수형 a = 1 b = 0 c = -1 print(a, b, c) # 1 0 -1 실수형 a = 1.23 b = 3. c = -13.2 print(a, b, c) # 1.23 3.0 -13.2 # 지수형 d = 1e4 e = 3000e-2 print(d, e) # 10000.0 30.0 컴퓨터의 시스템은 수 데이터를 처리할 때 2진수를 이용하며, 실수를 처리할 때 부동 소수점 방식을 이용한다. 2진수 체계 소수계산의 오차가 발생하는 대표적인 예시로는 0.3 + 0.6 이 0.8999999999999999 이 나오는 경우이다. 파이썬에서 이를 처리하는 ..

Algorithm/theory 2021.09.01

행렬 테두리 회전하기 ( Level 2, JavaScript, 2021 Dev-Matching )

행렬 테두리 회전하기 ( Level 2 ) 2021 Dev-Matching: 웹 백엔드 개발자(상반기) ( JavaScript ) 문제 링크 나의 풀이 function solution(rows, columns, queries) { const arr = Array(rows).fill(1) .map((el, i) => Array(columns).fill(el + i * columns) .map((a, i) => a + i) ) const res = [] while ( queries.length ) { const query = queries.shift(); let num = []; for ( let i = query[1]; i < query[3]; i++ ) num.push(arr[query[0]-1][i-1..

로또의 최고 순위와 최저 순위 ( Level 1, JavaScript, 2021 Dev-Matching )

로또의 최고 순위와 최저 순위 ( Level 1 ) 2021 Dev-Matching: 웹 백엔드 개발자(상반기) ( JavaScript ) 문제 링크 나의 풀이 function solution(lottos, win_nums) { let count = 0, zero = 0; for ( let i = 0; i < lottos.length; i++ ) { if ( win_nums.includes(lottos[i]) ) count ++ if ( lottos[i] === 0 ) zero++ } if ( !count && !zero ) return [6,6] return [Math.max(7-count-zero, 1), Math.min(7-count, 6)] } 0과 이외의 숫자 개수를 센 뒤 등수 계산

괄호 회전하기 ( Level 2, JavaScript, 월간 코드 챌린지 시즌2 )

괄호 회전하기 ( Level 2 ) Programmers 월간 코드 챌린지 시즌2 ( JavaScript ) 문제 링크 나의 풀이 function solution(s) { let res = 0; for ( let i = 0; i < s.length; i++ ) { const arr = []; let str = s.slice(i) + s.slice(0,i) for ( let j = 0; j < str.length; j++ ) { switch ( str[j] ) { case '(': case '[': case '{': arr.push(str[j]) break; case ')': arr.slice(-1)[0] === '(' ? arr.pop() : arr.push(str[j]) break; case ']': ..

2개 이하로 다른 비트 ( Level 2, JavaScript, 월간 코드 챌린지 시즌2 )

2개 이하로 다른 비트 ( Level 2 ) Programmers 월간 코드 챌린지 시즌2 ( JavaScript ) 문제 링크 나의 풀이 function solution(numbers) { return numbers.map(el => { if ( el % 2 ) { let two = el.toString(2) const idx = two.lastIndexOf('0') two = idx === -1 ? '10' + two.slice(1) : two.slice(0, idx) + '10' + two.slice(idx + 2) return parseInt(two, 2) } else { return el + 1 } }) } 짝수인 경우 이진수 마지막 자리인 0을 1로 바꾸는 과정 > 즉 +1을 해준다. 홀수인 ..