본문 바로가기

알고리즘

(4)
[매일 프로그래밍] 5월 7일 안녕하세요 이번 포스팅은 5월 7일날 받은 매일 프로그래밍 문제입니다. ※해당 문제에대한 저작권은 매일프로그래밍에 있습니다 문제정수배열과 타겟 숫자가 주어지면, 합이 타겟 값이 되는 두 원소의 인덱스를 구하여라 예제 Input : [2,5,6,1,10] , 타겟 8Output : [0,2] 조건 : 시간복잡도 : O(n) 풀이 해당 문제는 해쉬맵을 사용하면 간단하게 풀수 있습니다. 타겟값과 input 의 각 값의 차이 값이 해쉬맵에 있는지 확인하고, 없다면 키에는 input 값을 값에는 input의 인덱스를 저장합니다. 소스 public class test { public static void main(String[] args) {// TODO Auto-generated method stub int[] ..
[매일프로그래밍] 4월 16일 4월 16일 문제 풀이는 조금 늦게 올리게 됐습니다.다음 23일 문제도 최대한 빠르게 올리겠습니다. 4월 첫째주 포스팅 보기4월 둘째주 포스팅 보기 문제정수 n이 주어지면, n개의 여는 괄호 "(" 와 n개의 닫는 괄호 ")" 로 만들 수 있는 괄호 조합을 모두 구하시오. (시간 복잡도 제한 없습니다.) 특징괄호는 여는 괄호의 개수보다 닫는 괄호의 개수가 많을 수 없다.많은 경우의수를 요구하는 풀이다. 풀이조합이나 경우의 수를 구하는 문제는 재귀함수로 풀이를 시도하는게 좋다고합니다. n개를 입력받아 경우의 수를 구할때 다음을 생각했습니다. 어떤 조건으로 경우의 수를 더해갈것인지여는 괄호는 입력받은 숫자보다 많을 수 없다.닫는 괄호는 여는 괄호보다 많은 수 없다.어떤 조건으로 재귀함수를 끝낼 것인지괄호의 ..
[매일프로그래밍] 4월 9일 지난주에 이어 '매일프로그래밍' 풀이 포스팅입니다.이번 문제는 저번 문제보다 쉬웠습니다. 4월 첫째주 포스팅보기4월 셋째주 포스팅 보기 문제피보나치 수열중 0부터 입력된 값까지의 짝수들의 합을 구하는 문제입니다. 피보나치 수열은 처음 두항은 1이며 3번째부터는 이전 두개의 항을 합한 값이 되는 수열입니다. 풀이private int fivo(int input) { int sum = 0; int preNum = 0; int num = 1; for (int i = 1; i < input; ) { if (num % 2 == 0) { sum += num; } num = i + preNum; preNum = i; i = num; } return sum; } 결과화면 풀이와 거의 흡사해 따로 기재하지 않겠습니다. 해..
[매일프로그래밍] 4월 2일 매주 월요일에 코딩 문제를 보내주는 '매일 프로그래밍' 포스팅입니다.해당 포스팅에 작성된 풀이 과정은 최선이 아닌 복기를 위한 회고록 목적으로 작성되었습니다.'매일 프로그래밍' 구독하기 4월 둘째주 포스팅 보기4월 셋째주 포스팅 보기 4월 첫째주 월요일 문제정수 배열(int array)가 주어지면 가장 큰 이어지는 원소들의 합을 구하시오. 단, 시간복잡도는 O(n).예제Input: [-1, 3, -1, 5]Output: 7 // 3 + (-1) + 5 Input: [-5, -3, -1]Output: -1 // -1 Input: [2, 4, -2, -3, 8]Output: 9 // 2 + 4 + (-2) + (-3) + 8 필자의 풀이사용한 변수는 총 3개현재 인덱스의 값인 변수 number가장 큰 합을 ..