-
[프로그래머스] Level1 예산 Java 문제풀이 - 손코딩(?)비전공자 공부일기/::::: 묻고 답찾기 2020. 1. 27. 00:03
취업 후, 이런저런 준비하면서 개발에 너무 손을 놓고 있었단 생각이 들었다.
얼마전 ibk시스템 필기시험을 보고 왔더니 더욱 실감이 났다.
그리고 오랜만에 코드읽기를 해보면서 너무 재밌다는 생각이 들었다.
그래서 아주 기초적인 코딩 연습이라도 해보고자 프로그래머스 챌린지를 시작했다.
현재 회사에서 맡은 일은 데이터 관련된 직무라서, DB관련된 지식을 복습하느라 SQL 챌린지는 최근까지도 몇가지 연습했었다.
하지만 이번에는 오랜만에!! java를 건드려보게 된 것이다!!!(두둥)
일단 나의 수준을 바로알고(ㅋㅋㅋ) level 1부터 차근히 시작해보기로 했다.
카카오, 네이버 문제는 왠지 좀 아꼈다 풀고싶어서 Level1, Java, 서머코딩/윈터코딩(~2018)로 문제를 필터링했더니
고를 고민조차 하지 않도록 딱 한 문제가 떴다.
"예산"
오.... 내가 좋아하는 돈문제!(그래서 궁서체)
그런데 문제는, 너무너무 오랜만에 한 나머지 어떤 클래스를 import해야 하는지도 가물거리고
무슨 키워드가 있었는지도 가물가물가물치였던 것이다.
인터넷에 찾아도 해설이 금방 뜨긴 했지만, 왠지 한 번에 보는 것은 내 자존심이 허락을 안해욧!
키워드는 다시 감 익히면 되는거지만 어쨌거나 문제해결능력을 익히는 게 관건이라 생각했다.
그래서 일단 손코딩(?)이라기엔 어이없지만, 문제 알고리즘을 내 식대로 적어두고,
맞는 논리로 풀어냈는지 확인해보기로 했다.
너무 나만 알아보는 필기같아서ㅋㅋㅋ(첨엔 블로그에 올릴 생각이 없었기에)
좀 더 친절하게 적어보자면
i) 배열의 원소를 최소값부터 배열한다. <-- 분배 가능한 최댓값을 구하기 위해서는 최소값부터 더해나가야 함
ii) 원소를 하나씩 더해가며 sum값이 budget을 넘는지 체크
iii) d>=budget이 되면 for문을 종료한다.
iv) 더한 요소 개수-1 을 반환한다.
요런 흐름인데,
블로그까지 글을 쓰게 된 이유는 인터넷으로 풀이를 찾아봤더니
넘나 내 뇌피셜 손코딩이 맞아떨어져서이다...
몇 가지 풀이를 보고 내가 정리해서 제출한 솔루션이다.
이 풀이는 사실 요소값 누적이 아닌, budget에서 요소값을 하나씩 감액하는 솔루션이지만
더하기 빼기의 차이일 뿐, i)오름차순으로 정렬해서 ii)하나씩 가or감하는 iii)반복문으로 답을 구한다는 데서
내가 생각한 논리와 본질적으로 같다는 결론을 내렸음.
끄아앙 엄청 초보 수준이라 할지라도, 옴청 기분이 죠타아아
다음문제도 힘차게 궈궈
'비전공자 공부일기 > ::::: 묻고 답찾기' 카테고리의 다른 글
[Mybatis] mapper.xml에 조건문으로 동적 SQL 엘리먼트 이용하는 태그들 (0) 2020.09.04 [디버그] 스프링 jUnit에서 Error creating bean with name 'certifyController': Unsatisfied dependency expressed through field 'servletContext' 어쩌구 뜰때 (0) 2020.09.01 [디버그] 이클립스를 껐는데도 Tomcat 서버가 살아있을 때 - cmd에서 종료시키기 (2) 2020.08.29 [프로그래머스] 코딩테스트 연습 Level 1 - 핸드폰 번호 가리기 (0) 2020.01.27 [Java] 비교연산자 ==과 equals()의 차이점 -- 뭐가 다를까? (0) 2019.08.26