분류 전체보기
-
[java] 백준 알고리즘 1094번 막대기 풀이알고리즘/백준 알고리즘 2018. 7. 24. 15:14
반으로 쪼개가면서 계속해서 더하면 되는 문제다. 예제 입력 1의 경우인 23cm은 23cm은 64cm보다 작기 때문에 반으로 쪼갠다. 그럼 32cm, 32cm가 나오는데 32cm보다 23cm가 작기 때문에 32cm 나뭇가지 하나는 버리고 나머지 하나는 반으로 쪼갠다. 그럼 16cm, 16cm가 나온다. 16보단 23이 크기 때문에 16cm 하나는 가지고 있고, 하나는 반으로 쪼갠다. (16cm 하나 킵한다) 8cm, 8cm가 되는데 (가지고 있던 16cm) 나뭇가지에 8cm를 더하면 24cm이므로 다시 8cm 나뭇가지 하나를 쪼개고, 다른 8cm는 버린다. 4cm, 4cm가 나오는데, 가지고 있던 16cm 나뭇가지와 4cm 나뭇가지를 더하면 20cm! 그럼 이것도 킵한다. 남은 4cm를 다시 반으로 쪼갠..
-
자바 자료형 정리(Java Data Type)프로그래밍 언어/자바 & 코틀린 2018. 7. 23. 11:12
알고리즘을 풀다보면 자료형 범위가 생각나서 항상 찾아다녔는데, 아예 내 블로그에 정리하는 게 낫겠다. 종류 설명 비트 값의 범위 byte 정수 8-bit -128 ~ 127 short 정수 16-bit -32,768 ~ 32,767 int 정수 32-bit -2,147,483,648 ~ 2,147,483,647 (-2^31 ~ 2^31-1) long 정수 64-bit -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (-2^63 ~ 2^63-1) float IEEE754 실수 32-bit 1.40239846E-45f ~ 3.40282347E+38f double IEEE754 실수 64-bit 4.94065645841246544E-324 ~ 1.7976931..
-
[java] 백준 알고리즘 1520번 내리막 길 풀이알고리즘/백준 알고리즘 2018. 7. 23. 09:44
memoization을 활용한 문제다. 동적계획법에 나오는 유형이라는데 memoization이라는 개념은 이 문제를 풀면서 알게 됐다. 재귀개념까지만 알아서 재귀로 푸니 시간초과. 역시 재귀만 해서는 시간이 많이 걸린다. 원래 계산했던 것을 기억해두고 이전에 했던 계산을 다시 꺼내 줌으로써 반복계산을 피하는 방법이 memoization을 사용하는 방법이다. 이 문제는 이전에 방문했는지를 체크해줄 필요가 없다. 내리막길로 이동한 순간, 다시 오르막으로 올 일이 없기 때문에 이전에 방문했던 곳을 다시 방문할 일이 없다. if문에서 현재 값보다 다음 값이 작아야만 이동하게 만들 것이기 때문에. * 풀이 소스 123456789101112131415161718192021222324252627282930313233..
-
독파할 책 List(목표)개발 일기장/개발 일상 2018. 7. 21. 16:57
비전공자로서 부족한 컴퓨터 지식을 쌓기 위해 공부할 목록! 1. 러닝 자바스크립트 : ES6로 제대로 입문하는 모던 자바스크립트 웹 개발이선브라운 저 / 한선용 역 / 한빛미디어 2. 마스터링 TCP/IP : 입문편다케시타 타카후미, 무라야마 유키오 등 저/ 이영란 역/ 성안당 3. Operating System Concept(공룡책)Abraham silberschatz 저/ 홍릉과학출판사 4. HTTP 완벽가이드 : 웹은 어떻게 동작하는가 (현재 읽는 중)데이빗 고울리, 브라이언 토티 등 저/ 이응준, 정상일 공역/ 인사이트
-
[java] 백준 알고리즘 9461번 파도반 수열 풀이알고리즘/백준 알고리즘 2018. 7. 21. 16:41
다이나믹 프로그래밍 문제라는 것을 감안하고 시작! 이 문제는 종이에 몇 번 끄적이다보면 규칙을 찾을 수 있다. P(10) 정도까지 만들어보겠다. P(5)까지는 규칙이 안 보여서 직접 대입했다. 해당 값(파도반 수열 P(?))이 나오는데 어떤 순서의 값들이 더해진걸까를 찾아봤다. 6번째부터는 바로 현재 삼각형의 한 변과 4번째 전에 그려진 삼각형의 한 변을 더 한 길이가 다음 삼각형의 한 변 길이가 됐다. 그럼 현재의 삼각형 길이를 구하기 위해서는 P(i) = P(i-1) + P(i-5)라는 식이 적용할 수 있지 않을까? 앞에서 말했듯이 5번째까지는 규칙이 안 보였으니 6번부터 바로 시작하겠다. P(6) == P(5) + P(1) --> 3 == 2 + 1 P(7) == P(6) + P(2) --> 4 =..
-
네이버 블로그는 https 적용, 티스토리는 아직?개발 일기장/개발 일상 2018. 7. 21. 00:12
'http 완벽가이드: 웹은 어떻게 동작하는가'라는 책을 읽고 있다. 요즘 포털 사이트들이 모두 https로 전환하고 있는데, 문득 내가 이용하는 네이버 블로그, 티스토리 모두 https가 적용돼있는가 궁금해졌다. 네이버는 블로그 메인, 개인 블로그, 포탈 모두 적용돼있었는데, 티스토리는 메인페이지는 https가 적용돼있지만, 개인 블로그는 적용이 안돼있었다. 계획이 없는걸까 아니면 개발중인걸까 초급 개발자로서 문득 궁금. 이 분의 블로그 글을 읽어보았는데 이미 2017년 8월에 고객센터로부터 https 적용에 대해서 '내부적으로 검토중이다'라는 답장을 받았다는데, 지금 2018년 7월 21일인걸 보니 급하게 계획하고 계신건 아닌가보다. 보안쪽은 문외한이지만 'https'에 대해서는 얼른 읽고있는 책을 ..
-
[java] 백준 알고리즘 2156번 포도주 시식 풀이알고리즘/백준 알고리즘 2018. 7. 20. 09:44
다이나믹 프로그래밍 문제다. 조건 1이야 마시고 그냥 놔두면 된다라서 알고리즘에서는 별 상관이 없는 것 같고, 조건 2를 만족시키는 것이 중요하다. 앞으로 사용할 변수 명에 대한 설명은 다음과 같다. quantityWine: 각각 포도주 잔의 양 sumQuantityWine: 해당 순서에서 포도주를 마실 수 있는 최대양 연속 3잔을 마실 수 없다는 말은 (4잔 이상 놓여있다는 전제 하에)1. 두 칸 전까지의 포도주를 마실 수 있는 최대양 + 현재의 포도주 잔 마시기 식: sumQauntityWine[현재-2] + qantityWine[현재] 2. 한 칸 전 포도주를 마시고 싶다면 중복을 피하기 위해 현재의 포도주 잔 위치에서 3칸 전까지의 포도주를 마실 수 있는 최대양 식: sumQauntityWine[..