본문 바로가기

전체 글

프로그래밍은 참 어렵다. 기존에 double 형 변수로 처리하는 로직이 있었는데,처음엔 별 생각 없이 값이 없는 경우 null이 아닌 9999999 같은 쓰레기값(?)을 줘서 사용했다.실제 데이터는 저 범위까지 갈 일이 없었으므로...근데 이게 명백히 따지면 잘못된 로직이지.null이 아닌 쓰레기값이 들어가 있었으니.. 그래서 double 형 변수에 어떻게 null을 할당할까 찾아보니 랩퍼 클래스를 사용하면 된다더군. double a = null; //impossiblejava.lang.Double a = null; //possible https://stackoverflow.com/questions/11047276/null-for-primitive-data-types 생각해보면 처음 공부할때 다 배우는 내용들인데.. 이래서 기초.. 더보기
약수의 합 javascript function sumDivisor(num) {var answer = 0; var divisor = 1; while(num >= divisor){ var addNum = num % divisor == 0 ? divisor : 0; answer += addNum; divisor++; }; return answer;} // 아래는 테스트로 출력해 보기 위한 코드입니다.console.log(sumDivisor(12)); 이번거는 비교적 간단했음.. 더보기
제일 작은 수 제거하기 python def rm_small(mylist): # 함수를 완성하세요 smallest = mylist[0] index = 0; selected = 0; for number in mylist : if number < smallest : smallest = number selected = index index = index + 1 print(smallest) del mylist[selected] return mylist # 아래는 테스트로 출력해 보기 위한 코드입니다.my_list = [4, 3, 2, 1]print("결과 {} ".format(rm_small(my_list))) 더보기
최대공약수 최소공배수 javascript 프로그래머스라는 알고리즘 문제를 풀 수 있는 재미있는 사이트가 있다.알고리즘 연습하는데 도움이 많이 될 것 같다.재미있다. function gcdlcm(a, b) { var answer = []; var bigger = a >= b ? a : b; var smaller = a = 0; sIndex--){ if(biggerDivisorArr[bIndex] == smallerDivisorArr[sIndex]){ answer[0] = biggerDivisorArr[bIndex]; bIndex = 0; break; } } } // 최소공배수 var multiple; var k = 1; while(true){ multiple = bigger * k++; if(multiple%smaller == 0){ answer.. 더보기
별의 계승자 - 제임스 P.호건 리디북스에서 100% 포인트백을 하길래 구매했다.SF는 희한하게 끌리는 맛이 있다.전에 구입한 중력의 임무는 너무 재미가 없어서 중간에 멈췄는데,이 책은 평이 워낙 좋고 유명해서 기대가 됐다. 소감을 말하자면 음...소설이 스펙타클한 맛이 없다. 그것도 심하게 없다.그게 이 작품의 단점인듯...그래서 생각보다 술술 읽히진 않았다.그래도 마지막 결말 부분은 괜찮았다.꽤나 과학적이고 그럴싸해서 설득력이 있다.그 부분은 마음에 들었다. 그러나 그렇게까지 호평을 받을만한 작품인가.. 싶기도 하다. 개인적으로 이런 소설류 최고봉은 로버트 J.소여의 '멸종'인 것 같다.오멜라스에서 나왔던 버전이 표지도 예쁘고 좋았는데.. 얼마전에 중고로 팔았는데 그냥 갖고 있을 걸 그랬다. 기승전멸종...?? 아무튼 이게 시리즈물.. 더보기
LEFT OUTER JOIN을 이용한 컬럼 합치기(?) SELECT * FROM(SELECT '10:00' AS DT, 'A' AS GUBUN FROM DUALUNION ALLSELECT '11:00' AS DT, 'A' AS GUBUN FROM DUALUNION ALLSELECT '14:00' AS DT, 'A' AS GUBUN FROM DUALUNION ALLSELECT '15:00' AS DT, 'A' AS GUBUN FROM DUALUNION ALLSELECT '16:00' AS DT, 'A' AS GUBUN FROM DUAL) ALEFT OUTER JOIN(SELECT 'B' AS gubun2, 'C' AS gubun3 FROM dual) BON 1=1 결과DT | GUBUN | GUBUN2 | GUBUN3 10:00ABC11:00ABC14:00AB.. 더보기
oracle listagg 이용한 union 항목들 구분하기 SELECTDT, MAX(GUBUN), LISTAGG(GUBUN,',') WITHIN GROUP(ORDER BY GUBUN) as GUBUN2FROM(SELECT A.* FROM(SELECT '10:00' AS DT, 'A' AS GUBUN FROM DUALUNION ALLSELECT '11:00' AS DT, 'A' AS GUBUN FROM DUALUNION ALLSELECT '14:00' AS DT, 'A' AS GUBUN FROM DUALUNION ALLSELECT '15:00' AS DT, 'A' AS GUBUN FROM DUALUNION ALLSELECT '16:00' AS DT, 'A' AS GUBUN FROM DUAL) AUNION ALLSELECTB.*FROM(SELECT '12:00' A.. 더보기
Javascript module, 공통 함수 만들기 정리 이번에 공통 함수를 만들 일이 생겼다. 처음에는 그냥 공통 스크립트 파일에 전역 변수로 만들려다가 문득 그건 좀 아닌 거 같다는 생각이 들었고제대로 만들어야 할 것 같아서 이번 기회에 정리를 좀 해볼까 한다.출처는 대부분이 '속 깊은 자바스크립트'다. 1. 그냥 전역변수로 만든 경우 문제점 - 다른 test() 함수가 있는 경우 덮어쓰기가 가능하다.아래와 같이 동일한 function 이 있는 경우 덮어쓰기 돼서 나중에 만든 test()가 호출된다. 또는 이런 즉시실행함수가 있는 경우도 덮어쓰기 가능.// 결과는 fake test fuction! haha의도치 않게 다른 개발자가 만든 함수 이름과 겹치는 경우 요런 문제가 발생할 수 있으므로, 전역 변수 사용은 이제 그만하자. 2. 모듈 생성 후 windo.. 더보기