본문 바로가기

전체 글

(27)
[코테준비] PS를 하다가 오는 좌절감, 어떻게 극복할 것인가 프로그래머스 > 해시 > 베스트엘범 일단 자바 컬렉션에 대한 개념이 현저히 부족하였다. 큰 그림을 세워나가는데 너무나 큰 장애물이었다. 차라리 잘 모르는 것을 인정하고 일단 수학적으로 풀이방식을 설계하며 문제의 전체해결흐름을 이해했으면 좋았었는데.. 멘붕상태가 와서 늪에 빠지기 시작하면서 전체적인 사고를 하지 못했다. 나는 처음에 문제를 보고 일단 좀 복잡하다는 느낌을 받았다. 단순히 하나의 hashmap 으로는 문제를 풀 수 없다는 것을 직감했다. 사실 이 문제를 오후에 풀고 지금은 밤이라서 자세히 기억은 나지 않지만 그때 그 당시의 기억을 생각나는 대로 적으려 한다. 큰 그림 1. , 이 두개를 hashmap 으로 만들어야한다. 2. 특정장르를 가지는 index의 값을 얻어야 한다. 이때, 장르의 이..
[코테준비] 입문자를 위한 알고리즘 해결전략 - 3 프로그래머스 > 해시 > 위장 큰 그림 이것저것 문제 해결을 위해서 스케치를 해보다가 다시 문제의 발문을 보았다. 문제의 발문에서, "최소한 한 개의 옷을 입어야 한다"라는 조건을 보고 여사건으로 풀까? 라는 생각이 들었다. 그래서 이참에 수학적으로 알고리즘을 해결하기로 마음먹었다. 그러고 나서 고민했던 것은 다음과 같다 1. clothes [][] 배열을 hashmap으로 변환하자 - 어떻게 변환할 것인가? 2. 이차원 배열 length를 구해서 각 품목의 개수를 세야 한다 - 어떻게 셀 것인가? 3. 수학의 여집합(여사건) 개념을 사용하여 각 품목의 개수를 각각 곱한 후 -1을 해준다. (귀납적으로 수학적 증명을 했기에 시도할 수 있었음). 여기서 -1을 하는 이유는 아무 옷도 입지 않는 경우를 제외..
[러닝일지] 러닝 복귀 6일차 복귀 6일차 어제 밤에 알고리즘 코딩을 마치고 바로 뛰러 나갔었다. 갔다 온 후 너무 피곤해서 글을 쓰지 못해서 지금 남겨본다. 일단 어제 러닝은 매우 만족스러웠다. 공기도 너무 맑았고, 한강에서 처음으로 5km 이상을 뛰었기에 처음 가보는 장소가 너무 좋았다. 약간 언덕이 있어서 그때부터는 걸어서 올라가서 풍경을 보는데... 키야 정말 장관이었다. 넓은 한강과 옆에 지나다니는 차들, 그리고 오르막길을 열심히 올라오는 자전거를 타는 사람들.. 덕분에 오늘 시험2개를 보는 걸 잘 볼 수 있었던 것 같다. 페이스의 변화 빨리 뛰려는 욕심을 내려놓으니 멀리 뛸 수 있게 되었다. 물론 이전에 10키로도 거뜬히 뛰기도 했었지만, 그때는 꾸준히 오래 달리면서 몸을 최상으로 끌어올렸기 때문이라고 생각한다. 어느새부터..
[코테준비] 입문자를 위한 알고리즘 해결전략 - 2 프로그래머스 > 해시 > 전화번호 목록 큰 그림 시간 복잡도 O(n^2) 테스트 1,5,6,7,11 실패 & 효율성 성공 => ["123", "01230"]에서 java.lang.StringIndexOutOfBoundsException: begin 0, end 5, length 3 에러가 뜬다. 왠지 소트를 할 때 기준을 문자열 자릿수가 아닌, 숫자 값으로 정수 비교를 한 것 같다...? 소팅 결과가 분명 01230, 123 이렇게 되었기 때문에 저 에러가 뜬 것이 분명하다. 벽을 넘자 그래서 sort를 문자열 길이 기준으로 할 수 있을까 생각을 해서 구글링을 해보았는데 compare로 사용자 정의 메서드를 이용해서 만들어야 해서 복잡해질뿐더러, 내가 원하는 기능을 추가하는 것이 제한시간 안에 구현하는 ..
[코테준비] 입문자를 위한 알고리즘 해결전략 - 1 프로그래머스 > 해시 > 완주하지 못한 선수 큰 그림 앞으로 문제풀이를 할 때 다음의 절차를 따르려고 한다 (TDD 방식과 비슷) 1. 문제를 풀기전에 종이에 문제해결을 위한 스케치를 한다. 1-1. 큰그림을 그린다 1-2. 벽을 세운다. 1-3. 의문을 세운다. 2. 코딩을 시작한다. 2-1. 큰그림을 구현한다. 테스트 케이스를 돌려서 큰그림 테스트를 통과, 벽에 대한 테스트 케이스가 실패함을 확인한다. 처음에는 무조건 테스트에 실패한다. 2-2. 벽을 넘는다. 2-3. 의문을 해결한다. 3. 제출한다. 큰그림 : 문제를 푸는 큰 틀이자 뼈대. 고양이를 그릴 때 전체적인 고양이 골격을 그리는 것을 의미. 스케치를 해 나갈 때, 고양이의 머리 -> 몸통 -> 다리 순으로 그려나가는 것이 아닌, 고양이 뼈..
[러닝일지] 러닝 복귀 5일차 러닝회고암사동으로 이사를 오고 나서 다섯번째 뛰었다. 한 4.5키로쯤 뛰는 순간 10키로는 거뜬히 뛰겠구나 라는 느낌이 와서 기분이 좋았다. 그런데 집에 들어오면서 오른쪽 종아리가 땡기더라.. 원래 3일 간격으로 한번씩 뛰려고 했는데, 내일 시험이기도 하고 싱숭생숭해서 홀가분해지려고 무리해서 뛴것 같기도 하다. 이틀정도 쉬고 그래도 종아리 회복이 안되면 3일정도 후에 뛰어야겠다. 깨달은 것 1. 빌드업을 반드시 하면서 뛰어야 러닝효율이 좋다. 2. 초반에 540 페이스로 뛰어야 하고, 최소 1km는 그 페이스를 유지해주어야 한다. 3. 초반 3km는 500이하로 뛰면 금방 지친다. 4. 1km 단위로, 540->530->520->510... 빌드업해야한다 5. 호흡은 들이쉬기 2 내쉬기 2 -> 들이쉬기..
[러닝일지] 러닝복귀 4일차 어제 밤에 알고리즘 관련 블로그 포스팅을 마친 후 한강러닝을 하러 갔다. 어제가 복귀한지 4번째 러닝이었는데, 이전과 다르게 초반 페이스를 540대로 유지하면서 꾸준히 속도를 늘려서 530 520 이런식으로 빌드업하면서 마지막에 430 페이스로 300미터를 마무리하여 4.3km 를 완주하였다. 중간에 풍경사진 찍는다고 2km 뛰고 한번 잠깐 멈춘거 빼면 논스톱으로 완주를 하였다. 집에 와서 씻기 전에 양팔 이두근 강화를 위해서 덤벨 8kg 양팔 각각 16회 2세트로 근력운동으로 하루를 마무리했다. 운동으로 마무리 할 수 있어서 뿌듯한 하루였다(늦게 잔것이 좀 아쉽지만..). 이뤄가고있는 목표들 1. 매일 블로그 포스팅하기 2. 3일에 한번 2km이상 러닝하기 3. 일주에 한번 풀업, 푸쉬업, 덤벨 근력하..
CI/CD - 위대한 자동화의 힘 프로젝트 링크 TimJLee/Lets-boot Side project_ 스프링부트로 게시판 만들고 무중단 배포까지. Contribute to TimJLee/Lets-boot development by creating an account on GitHub. github.com 들어가기에 앞서 이번에 사이드 프로젝트로 스프링 부트와 AWS 를 이용하여 간단한 게시판을 구현해 보았다. 서버개발캠프에서 다른 팀이 사용한 CI/CD 툴 중 travis CI, CodeDeploy를 보고 처음에 '저건 뭐지? 나도 한번 써보고 싶다.' 라는 생각이 들었고, 캠프가 끝나자마자 이에 대해 공부하기 시작했다. 처음에는 왜 사용하는지 잘 이해가 가지 않았다. 빌드를 자동화 한다는 건 무엇이고, 배포를 자동화한다는 건 또 무..