가희와 방어율 무시 문제는 상당히 쉬운 문제였습니다. 그럼에도 불구하고 정답률이 그렇게 높지 않았는데요. 실수 오차 때문에 고전하는 경우가 상당히 많이 있었습니다. 이와 비슷한 이슈가 있었던 문제 중 하나는 가희와 btd5가 있었습니다. 먼저, 오답 코드는 위와 같습니다. 물론, 백준 질문에도 올라왔던 코드입니다. 어느 케이스에서 틀렸을까요? 500 80에서 제대로 답을 출력하지 못합니다. 왜 그럴까요? 실수 오차 때문이다. 라는 것을 누구나 알 수 있습니다. 어떠한 과정에서 잘못된 결과가 나왔는지 하나씩 보겠습니다. 먼저 1, b/100, c에 대해서 bit 값을 출력해 보겠습니다. 저는 memcpy 등으로 변수를 배열에 복사한 뒤에, 저장되어 있는 값의 bit를 하나씩 꺼내왔습니다. 저는 b, b/1..
전체 글 검색 결과
postgres에서 at time zone 을 쓰는 방법을 간단하게 알아봅시다. 정말이지 시간대는 실수 하기도 정말 좋고, 삽질 하기도 너무 좋은 듯 합니다. 먼저, 쿼리를 실행할 때 리턴하는 type 정보들을 알아봅시다. pg_typeof로 조회할 수 있는데요. 요래 입력해 봅시다. 그러면, now() at time zone 'HKT'의 리턴 타입은 timestamp without time zone이고, now()의 리턴 타입은 timestamp with time zone임을 알 수 있습니다. 먼저, timezone을 보겠습니다. Asia/Seoul입니다. 서버 시간이 서울 시간대인 셈입니다. now() at time zone 'HKT'의 결과는 어떻게 될까요? 먼저 postgres에서 now()는 문..
쉘 프로그래밍을 하다가 수 연산을 해야 될 때가 있었습니다. 이럴 때 어떻게 해야 할까요? bash 메뉴얼 문서를 보면, $(( expression )), (( compound 방법을 소개하고 있습니다. 이에 따르면 expression은 $a+$b가 됩니다. a는 3이므로, $a는 3으로 대치됩니다. 그리고, $b는 4로 대치됩니다. 즉, 우리는 3 + 4가 (( 안에 있기 때문에, 3 + 4를 산술 연산으로 평가하게 됩니다.3 + 4는 유효한 산술 표현식이므로 결과적으로 7이 리턴됩니다. 결과를 출력해 보니, 정말 그러하네요. 그러면 이건 어떨까요? 3+4라는 expression이 있습니다. ((로 감싸져 있으므로, 3+4가 산술 연산식으로 평가됩니다. 따라서, c는 3+4의 산술 연산 결과값인 7이 ..
클린 코드 예외 처리 부분을 보다가 이런 문구를 보게 되었습니다. 정상 흐름을 정의해라. 처음에는 이 말이 무슨 뜻인지 잘 몰랐습니다. 곰곰히 생각해 보니, 이펙티브 자바에서도 비슷한 이야기가 있었는데요. 예외는 예외 상황에서만 사용하라는 것이였습니다. 아래 예제는 너무나도 유명한 예제일 겁니다. 먼저, 길이가 5인 ArrayList를 생성합니다. 그리고 0부터 4까지 넣었습니다. 다음에, 9 ~ 12번째 줄에서, 리스트에 있는 모든 원소를 순회하게 됩니다. 그리고 foo 메서드를 실행합니다. for loop를 도는데, OutOfBound 에러가 뜨는 경우에, 에러 로그를 남기고 종료합니다. foo 메서드를 봅시다. 이 메서드는 0 이상 6 미만의 정수를 뽑습니다. 0, 1, 2, 3, 4, 5를 뽑는다..
특정 조건을 만족하는 레코드에 대해서 집계되게 하게 하는 것은 어렵지 않습니다. 그런데, 이런 경우가 있을 수 있습니다. 1월에 카데고리별로 몇 개나 쓰여졌고, 2월에는 몇 개나 쓰여졌고, 이러한 것들을 집계해야 할 경우가 있을 텐데요. 사실 case when 등으로 처리를 할 수 있겠습니다만 postgres에서는.. aggregate filter를 처음 알게 되어서 여기에 쓰고자 합니다. 먼저, 포스트의 데이터들입니다. 포스트에는 점수와 post 내용, id와 category가 있습니다. 이들 중 post에 bye가 포함되는 것들을 모두 얻어와 봅시다. 1번 카데고리에 1개, 3번 카데고리에 2개가 있습니다. 그리고 1번 카데고리의 총 점수는 18점, 3번 카데고리는 87점입니다. 다음에 gahui가 ..
최근댓글