Algorithm(34)
-
[2021-05-03] 음양 더하기
푼 시간 : 10분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/76501?language=java 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 문제가 쉬운데에 비해 푼 사람 수가 적었다. 정말 쉽다. class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for(int i=0; i
2021.05.03 -
[2021-05-01] 모의고사
푼 시간 : 2시간 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 완전 탐색이라는 풀이법을 알고는 있었지만 완전탐색의 기법에 있는 알고리즘에 기반해서 풀었는지는 잘 모르겠다. 이렇게까지 시간이 오래 걸릴줄은 몰랐다. 처음으로 그림을 그려가면서 푼 문제였다. 머릿속에만 그리기에는 너무 복잡했기때문에, 그림을 그려가면서 푸는 수가 제일 좋은 것 같았다. 좋은 방향으로 작용 했던 것 같다. 변수를 너무 많이 만들..
2021.05.01 -
[2021-04-29] K번째 수
푼 시간 : 30분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 이 쉬운걸 왜 아직도 풀지 못했었는가 매번 풀때마다 이상하게 돌아돌아 가는 습관이 있었던 것 같다. 요새는 귀찮음?이 생각을 바꾼다고 코드를 점점 짧게 하려다 보니 전에는 1시간을 들여다봐도 안됐던것이 10분만에 풀고 ( 오랜만에 봐서 기억이 안나던 것들 때문에 ) 20분을 더 소비했다 import java.util.*; class Solution { public int[] solution(int[] arra..
2021.04.29 -
[2020-12-01] 하샤드 수
푼 시간 : 20분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 하샤드 수 라는 말을 처음 들었는데 count를 안쓰고 어떻게든 만들어 보려고 했으나.. 결국엔 만들게 되었다. 코드를 짧게 줄이고싶다. class Solution { public boolean solution(int x) { boolean answer = true; int temp=0; int count=(int)..
2020.12.01 -
[2020-11-26] 콜라츠 추측
푼 시간 : 40분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 동적 계획법을 이해하기 위해 문제를 재귀적으로 풀어보았다. 나름 시간을 많이 잡아먹을 것으로 예상했으나 오히려 재귀적 표현에서 막힌것이 아니라 answer++을 해주어 막혔다.. 혼자서 10분정도 왜 answer에 값이 추가가 안되는지 계속 고민하다가 생각해보니 호출을 하면서 불러야 하는데 호출을 하고나서 부르자..
2020.11.26 -
[2020-11-20] 최대공약수와 최소공배수
푼 시간 : 40분 언어 : 자바 programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 도저히 어떻게 하는지 몰라서 고민하다가 인터넷에 유클리드 호제법을 검색해 봐서 풀었다. 최소 공배수와 최대 공약수를 구하는 방법이 너무 많기때문에 if문을 도배 할 수 없고, 유클리드 호제법을 쓸 수밖에 없었다. 처음 보자마자 재귀함수를 써야 한다고 느꼈으나, 도저히 어떤방식으로 써야할지 감이 안잡혔었다. 천천..
2020.11.20