전체 글
-
[Algorithm-PS] 약수의 개수카테고리 없음 2024. 7. 3. 17:18
알고리즘 문제를 풀 때종종 약수의 개수를 물어보는 문제들이 출제된다. 입력 수를 number 라고 할 때,가장 쉬운 방법으로는 1부터 number로 number를 나눠서나누어 떨어지면 count를 1 증가시키면 된다.해당 방법의 시간 복잡도는 O(N)으로입력 수가 커짐에 따라 실행 시간이 비례적으로 증가한다는 것을 알 수 있다. 그렇다면 효율적인 방법은 뭐가 있을까?나는 일단 단순하게 자기 자신(number)을 제외하면 모든 약수는 number를 2로 나눈 값보다작거나 같을 테니 1부터 (number / 2)로 number를 나눴었다.그러나 다른 사람들의 코드를 분석해본 결과 더 효율적인 방법이 있었다.√number 보다 작거나 같은 값으로 number를 나눠서나누어 떨어지면 count를 2번 증가시키..
-
24.06.24카테고리 없음 2024. 6. 24. 22:05
저번 주 목요일에 종강을 하고 약간의 휴식을 취했다.아무 것도 안 하는 게 이렇게나 재밌다니... 밀린 유튜브도 실컷 보고 인사이드 아웃2, 파묘를 봤다.둘 다 너무 재밌다.인사이드 아웃은 울면서 봤고파묘는 2시간 내내이러고 봄 그렇게 신나게 놀고코딩테스트를 위한 알고리즘 문제 풀이 공부를 시작했다.너무 잘 쉬었나, 신이 나서 4문제를 풀었다.근데 풀고 난 뒤에 다른 사람들의 풀이를 보면서 내 코드를 리뷰했는데,아직 현재 레벨에서는 그렇게 깊게 파고들 필요가 없는 것 같다.나는 문제 풀면서 계속 실행 시간이 신경쓰여서'정렬 알고리즘 중에 어떤 알고리즘이 가장 낮은 빅오 시간복잡도를 갖지?' 이랬는데,지금 단계에서는 어떻게든 풀어서 '맞았습니다' 나오면 되는 것 같다.한 줄 요약: 현재 단계에선 효율성 보..
-
백준 1010번카테고리 없음 2024. 6. 8. 14:33
졸업이 다가오고.. 취준을 위해 백준에 들어갔습니다.내 레벨 실버5.. 실버5 문제로 서막을 올렸습니다. 백준 1010번: 다리놓기 이 문제는 조합(Combination) 사용해서 푸는 문제다.근데... 수학을 손 놓은지 너무 오래돼서 조합 성질을 몽땅~ 까먹어버렸지 뭐예요~그래서 조합 성질을 기록해놓으려고 합니다! ! 조합에는 대표적인 2가지 성질이 있다.하나는 nC0 == nCn == 1 이라는 성질 (이건 알고 있었습니다. (진짜임))다른 한 성질은..바로 n+1Cr+1 = nCr + nCr+1 이라는 성질입니다. (?? 이건 정말 몰랐습니다. (진짜임)) 공식을 증명해보진 않았습니다만..숫자 하나하나 넣어보고 파스칼의 삼각형을 보면서 이해했습니다. 특히 위 그림보단 아래 그림이 많이 도움이 됐습..
-
[우테코 프리코스] 우테코 camp.nextstep.edu.missionutils 라이브러리의 Randoms.pickUniqueNumbersInRange 메서드카테고리 없음 2023. 10. 18. 21:27
우테코 6기에 지원했다.웜업 겸 현재 내 실력 파악을 위해2022년 우테코 5기 프리코스 문제를 풀어봤다.어떻게 테스트를 통과하는 코들 만들긴 했는데, 이게 그 스파게티 코드라고 하는 건가봐요..실력이 바닥이면 좋은 점: 올라갈 일만 남음 다시 본론으로 돌아와서.. 2022년 프리코스 3주차 문제 Lotto 문제를 풀다가우테코 라이브러리에서 지원하는 camp.nextstep.edu.missionutils.Randoms.pickUniqueNumbersInRange 메서드가 어떻게 구현돼서 unique를 유지하는지 궁금해 찾아보고 이렇게 기록합니당. pickUniqueNumbersInRange 메서드로 넘어오는 startInclusive 매개변수와 endInclusive 매개변수, 즉 범위의 시작 숫자(포함..
-
[Java] throw 키워드를 통한 예외 발생카테고리 없음 2023. 10. 13. 22:10
오늘은 throw를 통해서 예외를 발생하고 try-catch 문으로 예외 처리하는 방법을 알아봤습니다.저는 지금 IllegalArgumentException을 터뜨리고 에러 메시지를 띄운 후, 다시 입력받는 코드를 짜야합니다. static void input_name() { System.out.println("코치의 이름을 입력해 주세요. (, 로 구분)"); try { coaches = sc.next().split(","); System.out.println(); for(String coach : coaches) { validate_name(coach); // 이름의 길이를 검증하는 메서드 ..