본문 바로가기

Java

(501)
[자바 알고리즘 인터뷰] 7장 배열 (1) 두 수의 합 https://leetcode.com/problems/two-sum/description/ - 덧셈하여 타깃을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라 풀이 1) 브루트 포스로 계산 - 배열을 두 번 반복하면서 모든 조합을 더해서 일일이 확인해보는 무차별 대입 방식인 브루트 포스(Brute-Force)로 풀이 class Solution { public int[] twoSum(int[] nums, int target) { //입력값 배열을 처음부터 순회 for(int i=0; i
[자바 알고리즘 인터뷰] 6장 문자열 처리(6) 가장 긴 팰린드롬 부분 문자열 https://leetcode.com/problems/longest-palindromic-substring/description/ - 가장 긴 팰린드롬 부분 문자열을 출력하라 풀이 1) 팰린드롬을 발견하면 확장하는 풀이 최장 공통 부분 문자열(Longest Common Substring) - 여러 개의 입력 문자열이 있을 때 서로 공통된 가장 긴 부분 문자열을 찾는 문제로, 다이나믹 프로그래밍으로 풀 수 있는 전형적인 문제 - 이 문제 또한 동일한 유형의 문제로서, 동일하게 다이나믹 프로그래밍으로 풀 수있다. - 그러나 이 문제의 경우 다이나믹 프로그래밍을 이용한 풀이는 직관적으로 이해가 어렵고, 실행속도가 느리다. - 그러므로 투 포인터(Tow Pointers)가 팰린드롬을 발견하면 확장하는 형태로 풀..
[JAVA] 프로그래머스 - 수열과 구간 쿼리 1 https://school.programmers.co.kr/learn/courses/30/lessons/181883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 class Solution { public int[] solution(int[] arr, int[][] queries) { for(int i=0; i
[JAVA] 프로그래머스 - n보다 커질 때 까지 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/181884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 class Solution { public int solution(int[] numbers, int n) { int answer = 0; int sum = 0; for(int i=0; i
[JAVA] 프로그래머스 - 할 일 목록 https://school.programmers.co.kr/learn/courses/30/lessons/181885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 import java.util.ArrayList; class Solution { public String[] solution(String[] todo_list, boolean[] finished) { ArrayList list = new ArrayList(); for(int i=0; i
[JAVA] 프로그래머스 - 5명씩 https://school.programmers.co.kr/learn/courses/30/lessons/181886 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 import java.util.ArrayList; class Solution { public String[] solution(String[] names) { ArrayList list = new ArrayList(); for(int i=0; i
[JAVA] 프로그래머스 - 홀수 vs 짝수 https://school.programmers.co.kr/learn/courses/30/lessons/181887 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 class Solution { public int solution(int[] num_list) { int odd_sum = 0; int even_sum = 0; for(int i=0; ieven_sum) { return odd_sum; } else if(even_sum>odd_sum) { return even_sum; } else { return even_sum; } } }
[JAVA] 백준 2178 미로 탐색 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net - N*M 크기의 배열로 표현되는 미로가 있다. - 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. - 이러한 미로가 주어졌을 때, (1,1)에서 출발하여 (N,M)의 위치로 이동할 떄 지나야 하는 최소의 칸 수를 구하는 프로그램을작성하시오. - 한 칸에서 다른 칸으로 이동할 떄, 서로 인접한 칸으로만 이동할 수 있다, - 위의 예에서는 15칸을 지나야 (N,M)의 위치로 이동할 수 있다. 칸..