본문 바로가기

Programming/데일리 알고리즘

(34)
(210417:BTB) Lesson 2. OddOccurrencesInArray
(210409:BTB) Lesson 2. CyclicRotation function solution(A, K) { // write your code in JavaScript (Node.js 8.9.4) if ( A.length < K ) { K = K%A.length; } let newA = A.slice(); let result = [].concat(A.splice(A.length-K, K), newA.splice(0, newA.length-K)); return result; } 1. Array.prototype.unshift() - 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환합니다. 2. Array.prototype.shift() - 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다. 3. Array.prototype.pop() - 배열에..
(210409:BTB) Lesson 1. BinaryGap ㅇ 작성한 코드 /* solution */ function solution(N) { let binary = N.toString(2); //이진수로 변경함 let trimed = binary.substring(0, binary.lastIndexOf(1)) return Math.max(...trimed.split('1').map(item => item.length)); } 1. Number.prototype.toString() 구문 : numObj.toString([radix(Optional)])​ - radix 범위 : 2~36 - 특정 진수로 객체를 표현한 문자열을 환원합니다. numObj가 음수이면 -로 음수를 환원하고, 정수가 아니면 .으로 소수점을 구분한다. 2. String.prototype.su..
190725_덩치(7568)_C // // Created by yejin kim on 2019-07-25. // #include #include int main(void) { int count; scanf("%d", &count); int *x = (int*)malloc(sizeof(int)*count); int *y = (int*)malloc(sizeof(int)*count); for ( int i=0; i
190719_소수구하기_C 에라토스테네스의 체를 사용할 때와 아닐 때, 시간 복잡도를 비교해보았다. 무려 소요 시간이 10배 차이가 난다. (2번의 코드 길이가 더 긴 이유는 1번을 주석 처리해서이다.) 1. 제곱근을 사용해서 풀었을 때 2. 에라토스테네스의 체를 사용해서 풀었을 때 #include int main(void) { int m; int n; scanf("%d %d", &m, &n); //에라토스테네스의 체 int arrange = n-m+1; int notSosu[1000000] = {0,}; notSosu[1] = 1; for ( int i=2; i
190713_ACM호텔_C - 백준 > ACM 호텔 1. 방배정은 1층 1호실부터 2층 1호실, 3층 1호실 순서대로 이루어진다. 즉, 호수가 층수에 우선한다. 2. 아래처럼 두 가지 분류로 나누어 생각한다. 1) N%H == 0 2) N%h > 0 #include int main(void) { int count; scanf("%d", &count); for ( int i=0; i
190712_카잉 달력_C - 백준 > 카잉달력 보통 2시간 지나도록 안풀리면 해답을 찾는데, 카잉 달력은 C로 푼 답을 찾기도 쉽지 않아 결국 풀어버렸다... 시간 복잡도 해결하느라 9번이나 삽질을 했다. 처음 1번은 문제를 제대로 이해하지 못해서 틀렸고, 다음 5번은 메인 함수에서 시간 복잡도를 해결하지 못해 틀렸고, 그 다음 1번은 실수로("\n"을 빼먹음), 그 다음 1번은 실수를 바로 잡고 최소 공배수 함수에서 시간 복잡도를 해결해서 맞았다. 8번은 메인 함수에서 틀리고, 1번은 최소 공배수 구하는 함수에서 시간 복잡도를 줄이는 방식(유클리드 호제법으로 변경)으로 해결했다. 아래는 C로 작성한 카잉 달력의 답이다. #include int gcd(int a, int b) { int c; while (b != 0) { c =..
190710 - C 문법 오늘 배운 것 string.h [함수] 배열 복제 int a[10]; int b[10] = {0,} memcpy(a, b, sizeof(b)); 배열 오답노트 배열은 항상 상수로 선언해야한다. 좋은 예 int array[10] 나쁜 예 (variable-sized object may not be initialized 에러 발생!) int array[n] 배열 값 할당은 0으로만 한다. 좋은 예 int array[10] = {0,} 나쁜 예 int array[10] = {1,}