반응형 전체 글1065 [코딩 테스트 30일 챌린지] : 06 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 n개 자연수의 합을 구하고, 그 합의 최대 자연수를 출력하자. 단, 각 자연수의 자릿수의 합을 구하는 함수를 꼭 작성한다. 입, 출력 예제 입력 : 3 125 15232 97 출력 : 97 풀이 n = int(input()) a = list(map(int, input().split())) def digit_sum(x): sum=0 for i in str(x): sum+=int(i) return sum max = -2147000000 for x in a: tot=digit_sum(x) if tot>max: max=tot res=x print(res) str() 함수는 받은 값을 다 쪼개서 문자열로 받는다. 123을 넣으면 1 2 3을 따로 값을 문자.. 2022. 6. 17. [소경관] : 프로젝트 발표와 실패 오늘 프로젝트 발표가 있었다. 마감은 다음주인데 미리 완성한 사람은 먼저 발표하고 통과를 하거나 매를 맞거나 할 수 있는 기회가 있어서 다 완성한 김에 발표를 했는데 결론을 먼저 말하면 실패했다. 처음에 발표 할 때에는 alert를 따로 설정해 주지 않아서 유저 친화적이지 않다는 이유로 빠꾸당해서 오후까지 싹 프로젝트 갈아 엎어서 만들었는데 두 번째 발표 때는 하필.. 문자 API를 보내는 곳에 요금이 다 떨어져서 오류를 터트렸다. 따로 오류 잡아주는 코드가 없어서 실패했고 지금은 restController로 바꾸면서 catch로 오류를 다 잡아준 상태이다. 다음주 월요일에 발표하고 마무리를 하게 될 것 같다. 2022. 6. 17. [TIL] : 263 일일 배움을 위한 Today I Learned ! 소경관 오늘 진행 사항을 간단하게 정리했다. 따로 코드는 없고 깃허브에서 오늘 날짜로 확인이 가능하다. 2022.06.16 - [Project/소경관] - [소경관] : Spring Boot, Gradle jar 배포하기 코딩 테스트 30일 챌린지 오늘도 알고리즘 한 문제를 풀었다. 로직 정리 후 올리고 있다. 2022.06.16 - [챌린지/코딩 테스트 30일 챌린지] - [코딩 테스트 30일 챌린지] : 05 2022. 6. 16. [코딩 테스트 30일 챌린지] : 05 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 정n면체, 정m면체 주사위를 던져 나올 수 있는 눈의 합 중 가장 높은 확률의 값을 출력 여러개인 경우 오름차순 출력 입, 출력 예제 입력 : 4 6 출력: 5 6 7 풀이 n, m = map(int, input().split()) cnt = [0]*(n+m+3) max=-2147000000 for i in range(1, n+1): for j in range(1, m+1): cnt[i+j] += 1 for i in range(n+m+1): if cnt[i]>max: max=cnt[i] for i in range(n+m+1): if cnt[i]==max: print(i, end=' ') n과 m의 합의 값을 담아둘 리스트를 만들고 n과 m을 더하고.. 2022. 6. 16. [소경관] : Spring Boot, Gradle jar 배포하기 오늘은 프로젝트 마무리를 하면서 배포까지 진행했다. 중간에 막히는 부분이 있었는데 아직 코드를 다 정리하지 못 해서 적을 수 없다. 배포하는 방법은 찾아보니 Git을 클론해서 gradle를 빌드해서 사용하는 방법이 보통인 것 같은데 일단 나는 인텔리제이에서 jar로 빌드해서 서버에 직접 넣어 사용했다. 아직 몇 가지 오류를 못 잡았지만, 빨리 해결해서 가능하면 내일 마무리할 예정이다. 2022. 6. 16. [TIL] : 262 일일 배움을 위한 Today I Learned ! 소경관 오늘 진도가 많이 나갔는데 코드를 따로 정리하지 못 했다. 자세한 코드는 깃허브에서 오늘 날짜로 볼 수 있다. 2022.06.15 - [Project/소경관] - [소경관] : 카카오 OCR 사용 코딩 테스트 30일 챌린지 알고리즘 풀이 한 문제를 후딱 끝냈다. 어려워서 다시 봐야 한다. 내일이나 모래 복습 좀 해야겠다. 2022.06.15 - [챌린지/코딩 테스트 30일 챌린지] - [코딩 테스트 30일 챌린지] : 04 2022. 6. 15. [코딩 테스트 30일 챌린지] : 04 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 n명의 학생의 평균(소수 첫짜리 반올림)을 구하고, 평균에 가장 가까운 학생은 몇 번째 학생인지 구하라. 입, 출력 예제 입력 : 10 45 73 66 87 92 67 75 79 75 80 출력 : 74 7 풀이 n = int(input()) a = list(map(float, input().split())) avg=round(sum(a)/n) min = 2147000000 for idx, x in enumerate(a): tmp=abs(x-avg) if tmpscore: score=x res=idx+1 print(avg, res) 위에는 전체적인 코드고 아래는 풀이다. 주석으로 각 코드의 설명을 달아두었다. # round()를 사용해서 소수 첫째.. 2022. 6. 15. [소경관] : 카카오 OCR 사용 카카오 OCR을 사용해서 차량 번호판 인식을 구현하는데 성공하긴 했다. 하지만 이게 약간 편법으로 성공한거라서 애매하다. 아직 로직 정리를 하지 않아서 올리지는 못 한다. 일단 깃 허브에 올려두고 마지막 완성 후에 다시 로직 정리를 할 예정이다. 2022. 6. 15. [TIL] : 261 일일 배움을 위한 Today I Learned ! 코딩 테스트 30일 챌린지 알고리즘 30일 챌린지 03일차 오늘도 달성했다. 2022.06.14 - [챌린지/코딩 테스트 30일 챌린지] - [코딩 테스트 30일 챌린지] : 03 소경관 kakao ocr을 사용하기 위해 python과 curl을 찾아보고 있다. 포스트맨으로 몇 가지 테스트 해서 성공하긴 했는데 아직 코드를 본격적으로 적용하진 못 했다. 2022. 6. 14. [코딩 테스트 30일 챌린지] : 03 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 1부터 100까지 적힌 카드 중 3개를 뽑을 수 있는 모든 경우를 기록해 뽑은 후 값을 더한다. 이 중 k번째로 큰 수를 출력하자. 입, 출력 예제 입력: 10 3 13 15 34 23 45 65 33 11 26 42 출력: 143 풀이 n, k = map(int, input().split()) a = list(map(int, input().split())) res = set() for i in range(n): for j in range(i+1, n): for m in range(j+1, n): res.add(a[i] + a[j] + a[m]) res = list(res) res.sort(reverse=True) print(res[k-1]) n,.. 2022. 6. 14. [TIL] : 260 일일 배움을 위한 Today I Learned ! 소경관 프로젝트 중 막힌 부분에 대해서 대처 방안을 찾았다. 2022.06.13 - [Project/소경관] - [소경관] : 인식률 안 좋은 테서렉트 대체 방안을 마련하다. 코딩 테스트 30일 챌린지 코딩 테스트 30일 챌린지를 채웠다. 시간이 생각보다 오래 걸린다. 2022.06.13 - [챌린지/코딩 테스트 30일 챌린지] - [코딩 테스트 30일 챌린지] : 02 2022. 6. 13. [소경관] : 인식률 안 좋은 테서렉트 대체 방안을 마련하다. 이미지를 불러와서 차량 번호판을 인식해 해당 차량을 주차 표기해주는 기능에 테서렉트를 사용했는데 인식률이 진짜 너무 안 좋다. 사용을 못 할 정도여서 다른 방안을 찾던 중 카카오 비전 api를 찾았다. https://developers.kakao.com/product/vision Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 역시 카카오에서 미친걸 만들어낸 것 같다. 얼굴 나이 체크부터 별게 다 된다. 이 중에 ocr 기능도 포함이 되어 있는데 한국에서 만든 ocr 기능이다 보니 한글 인식이 좋지 않을까..하는 기대에 개발 문서와 후기를 들여다.. 2022. 6. 13. [코딩 테스트 30일 챌린지] : 02 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 테스트 케이스가 주어지고 n개의 숫자로 이루어진 숫자열이 주어지면 이 중에 s ~ e까지의 수를 오름차순정렬하고 k번째 수를 출력한다. 입, 출력 예제 입력 : 2 6 2 5 3 5 2 7 3 8 9 15 3 10 3 4 15 8 16 6 6 17 3 10 11 18 7 14 7 15 출력: #1 7 #2 6 풀이 t = int(input()) for i in range(t): n, s, e, k = map(int, input().split()) a = list(map(int, input().split())) a = a[s-1:e] a.sort() print("#%d %d" %(i+1, a[k-1])) 전체 풀이는 위와 같다. 조금 더 자세히 설명.. 2022. 6. 13. [TIL] : 259 일일 배움을 위한 Today I Learned ! 소경관 오늘 회원 가입할 때 중복 아이디로 가입해도 회원가입 성공으로 메시지가 나가는 오류를 발견해서 고치고 파이썬에서 이미지 프로세싱 처리를 하기 위해 어떻게 파일을 잘 받아서 플라스크로 넘겨줄지 고민하고 있다. 코딩 테스트 30일 챌린지 오늘부터 꾸준하게 하루 1문제 이상 코테 문제 풀기 시작이다. 2022.06.12 - [챌린지/코딩 테스트 30일 챌린지] - [코딩 테스트 30일 챌린지] : 챌린지 설명과 시작 전 코딩 테스트 실력 상태 체크 2022.06.12 - [챌린지/코딩 테스트 30일 챌린지] - [코딩 테스트 30일 챌린지] : 01 2022. 6. 12. [코딩 테스트 30일 챌린지] : 01 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 n,k를 입력 받아 n의 약수 중 k번째 작은 수를 출력하라. 이 외 약수가 없다면 -1 출력 입, 출력 예제 입력: 6 3 출력: 3 풀이 n,k = map(int, input().split()) cnt = 0 for i in range(1, n+1): if n%i==0: cnt += 1 if cnt == k: print(i) break else: print(-1) n과 k를 int 형식으로 받는다. 입력 예제가 6 3으로 띄어쓰기로 구분되어 있기 때문에 split 공백을 통해 구분하여 각각 n과 k에 값을 넣어준다. k번째 약수를 체크하기 위해 cnt를 넣어 n의 약수의 수를 카운팅해준다. for문을 통해 1부터 6까지 반복되게 해준다. 원래는.. 2022. 6. 12. [코딩 테스트 30일 챌린지] : 챌린지 설명과 시작 전 코딩 테스트 실력 상태 체크 목차 챌린지 기간 : 22.06.12(일) ~ 22.07.11(월) 1. 코딩 테스트 30일 챌린지란? 2. 왜 30일 챌린지인가? 3. 계기 4. 풀이 언어 5. 공부 매개체 6. 학습 방법 7. 시작 전 상태 체크 1. 코딩 테스트 30일 챌린지란? 연속적으로 30일 동안 꾸준하게 코딩 테스트 문제를 풀고, 풀이를 기록하는 챌린지이다. 2. 왜 30일 챌린지인가? 꾸준하게 알고리즘 문제를 풀기 위한 습관을 들일 겸, 내가 질리지 않고 꾸준히 '이제 곧 끝난다! 힘내자!'로 스스로를 다독이며 해낼 수 있을 것 같은 기간을 30일 정도로 예측하기 때문에 30일 챌린지로 정했다. 그 전에 자바스크립트 30일 챌린지에서 팁을 얻었다. 3. 계기 취업을 앞두고 프로젝트를 열심히 하고 있지만, CS 지식과 알고.. 2022. 6. 12. [TIL] : 258 일일 배움을 위한 Today I Learned ! 소경관 간단하게 try catch에서 if문을 사용하면서 코드를 개선해 나간 과정을 적어봤다. 이것 외에 파이썬으로 이미지 처리하는 과정이나 img를 여러개 받아 리스트 형태로 어떻게 넘겨주면 좋을지에 관한 예제도 찾아보고 있었다. 내가 생각하는 마지막 남은 이미지 인식 기능은 파일을 여러 장 받아와서 리스트 형태로 파이썬으로 넘겨주고 파이썬에서 이미지 프로세싱을 통해 다듬과 테서렉트로 인식해 ocr을 뽑아 리스트형태로 다시 만들어 스프링으로 넘겨주는 것이다. 이렇게 넘겨 받은 데이터를 스프링에서 체크 로직에 넣어 DB에 있는 차 번호와 같을 경우 자동으로 체크되게 하고 체크된 근무 일지를 저장하게 만드는 것을 이 기능의 최종 목표로 하고 있긴 한데 이게.. 2022. 6. 11. [소경관] : try / catch문에서 if문 다루기 try { JSONObject obj = (JSONObject) message.send(params); log.debug("### obj : {}", obj); System.out.println(obj.toString()); JSONObject jsonObject = (JSONObject) obj; log.debug("### jsonObject : {}", (JSONObject) obj); log.debug("### jsonObejct - success_count : {}" , (Long) jsonObject.get("success_count")); // TODO: 2022-06-11 alert로 전송 성공 및 실패 결과 띄워주기 // {"group_id":"dkdlelrkqt","success_coun.. 2022. 6. 11. [TIL] : 257 일일 배움을 위한 Today I Learned ! 소경관 아이디 찾기와 Rest API를 사용한 문자 보내기를 구현했다. 2022.06.10 - [Project/소경관] - [소경관] : 아이디 찾기 및 RestAPI로 문자 사용하기 및 남은 기능 체크 2022. 6. 10. [소경관] : 아이디 찾기 및 RestAPI로 문자 사용하기 및 남은 기능 체크 당장 오늘 코딩한 파일만 봐도 수두룩하다. WBS를 100% 구현해야 한다고 해서 안 만들려던 아이디 찾기를 만들었다. 비밀번호 찾기랑 사실 크게 다르지 않다. 비밀번호 찾기할 때 아이디도 입력 받아서 메일하고 아이디랑 같은 user인지 체크하는 로직을 추가할까 했는데 일단은 돌아가게 만들고 나중에 리팩토링할 때 체크해 볼 예정이다. 그거 말고 위기가 하나 왔는데 프로젝트 평가 내용 중 Open API 사용이 있었다. 나는 API를 사용하긴 했는데 JSON 왔다갔다 하지 않았다고 인정이 안 된다고 해서 방문자에게 양식을 보내는 문자 기능을 RestController를 통해 JSON으로 변환해 받고, 주는 것을 하려고 한다. 일단 JSON 형태로 변환해서 문자를 보내주는 것 까지는 성공했고, 이제 뭐 내역.. 2022. 6. 10. [TIL] : 256 일일 배움을 위한 Today I Learned ! 소경관 오늘은 메시지 보내기 위해 로직을 짜고 있다. MongoDB에서 user의 주민 컬럼에 해당하는 데이터 중 전화번호만 가져와서 리스트로 만들어두었다. Message 라이브러리로 연결하고 있는데 아직 잘 안 된다. 내일까지 완성 시키고 간단하게 체크해 봐야겠다. 2022. 6. 9. 이전 1 2 3 4 5 6 ··· 51 다음 반응형