Monday, July 12, 2021

euler686

euler686

this is logarithm problem ~!
I just multiply log10 to A= 2^n

double d = Math.log10(2);  
  
int count =0;  
for(int i=2; i<1000000000; i++){  
    double value  = d* i;  
 double fp = value - (int) value;   
double realValue = Math.pow(10, fp);  
  
 int result = (int)(realValue* 100d);  
 if(result== 123){  
        count++;  
  }  
 
    if(count == 678910){  
        System.out.println(i);  
 break;  }  
}

Wednesday, February 24, 2021

장박 캠핑

코로나로 카페도 폐쇄되고 아이둘을 데리고 나갈만한 곳이 없다.

겨울동안 주말에만 잠깐 쉬어가는 나의 텐트 2동 설치 완료.

벌써 90일 캠핑이 끝났구나~

 


Sunday, May 31, 2020

회계를 정통이 아닌 책으로 배우다

지금 개발 하는 분야가 돈인만큼 회계 공부를 시작했다. 물론 나중에 기회가 생기면 자격증도 따고 조금더 상세하고 공부하긴 하겠지만 지금은 가볍게 책을 읽어나가면서 회계에서쓰는 단어나 조금 익숙해지는게 필요할것 같다.


첫번째 보고 있는 책
- 이것이 실전 회계다. ( chapter1 읽고있는데 3번정도 보고 다른책으로 넘어가야겠다. )

Sunday, November 24, 2019

clean code 1장, 2장

책을 읽고 개인적으로 내용을 정리합니다.

요약

서문
- 과거의 프로그래밍과 현재의 프로그래밍이 크게 차이점이 없다.

1장
- 시간이 없다고 코드 리팩토링을 나중으로 미루면 안된다.
- 좋은 구조가 아니면 계속 반복해서 소프트웨어를 출시하게 되는 경우 개발자도 많이 필요하고 업무 효율도 계속 줄어듬

2장
- 범하기 쉬운 실수1
  - 중요하지도 않고, 긴급하지도 않은 것을 중요하고, 긴급함으로 격상시키는 일
- 좋은 아키텍쳐를 위해 투쟁하라
- 아키텍쳐를 후순위로 두지 마라
  - 개발하는데 더 시간이 많이 걸릴수도 있다.

Thursday, November 7, 2019

요즘 읽고 있는 책 ( 미래를 바꾼 아홉 가지 알고리즘 )

미래를 바꾼 아홉가지 알고리즘

2년전에 한번 도서관에서 빌렸었는데 다시 빌렸다.
대여기간이 11월 18일까지인데 지금 챕터 2개를 읽었음.
- 오류 정정 코드
  - 반복 기법
  - redundant 기법
  - checkSum 기법

- 데이터 압축
  - 비손실 압축
    - 여기서는 공짜 점심이라고 표현한다.
    - hamming code , zip등 압축전과 압축후가 동일
  - 손실압축
    - JPEG가 대표적인 예
    - 압축을 하고 복구를 하게 되면 전과 후가 다름



18일전까지 꾸준히 읽어야 겠다.

Wednesday, October 16, 2019

palindrome

palindrome

dp 문제를 푸는 나름대로의 방법

  • DP 에서 row와 column에 어떤값을 정확하게 넣어야 할지가 분명하게 서지 않을때 그림을 그리는것은 도움이 된다.

문제

  • 여러개의 특정 포지션에서 해당 substring이 palindrome인지 체크 하는 로직을 만드세요
  • left = 시작 지점 right = 끝 지점
  • ex) str = “abad”

풀이

  • T = true, F = false로 간주한다.
  • table[left][right]에 대한 값을 담을 수 있는 table을 만들고 값을 채워나간다.
  • left == right 같을때는 T 로 셋팅
  • left != right
    • left +1 <= right-1 ( size가 3이상인 경우)
      • str[left] == str[right] && table[left+1][right-1] 인경우 table[left][right] T 셋팅
    • left +1 > right-1 ( size 가 2인경우 )
      • str[left] == str[right] 인 경우 table[left][right] T 셋팅
사이즈가 1인경우
사이즈가 2이고 left = 0, right =1 인경우

사이즈가 3이고 left = 0 right =2 인경우


코드

String s = "abac";
boolean[][] table = new boolean[s.length()][s.length()];
for(int i=0; i<s.length(); i++){
    table[i][i] = true;
}
for(int size=2; size<s.length(); size++){
    for(int left=0; left<s.length(); left++){
        int right= left+size-1;
        if(right >= s.length()){
            continue;
        }
        if( size == 2){
            table[left][right] = s.charAt(left) == s.charAt(right);
        }else{
            table[left][right] = s.charAt(left) == s.charAt(right) && table[left+1][right-1];
        }
    }
}

Monday, October 14, 2019

Async Await 사용할때 3가지만 알면 모든게 해결됨

1. async function은 promise 를 리턴함
2. promise는 then이나  await 로 기다림
3. await는 async 안에서만 사용한다.