Java (501) 썸네일형 리스트형 [자바 알고리즘 인터뷰] 7장 배열 (3) 세 수의 합 https://leetcode.com/problems/3sum/description/ - 배열을 입력받아 합으로 0을 만들 수 있는 3개의 엘리먼트를 출력하라 풀이 1) 브루트 포스로 계산 - Arrays.osr(nums)로 정렬 - i.j,k 각각의 포인터가 계속 이동하면서 i+j+k=0을 찾아낸다. - 브루트 포스 풀이에는 중복된 값이 있을 수 있으므로 continue로 건너뛰도록 처리 import java.util.*; class Solution { public List threeSum(int[] nums) { List results = new LinkedList(); Arrays.sort(nums); //브루트 포스 n^3 반복 for(int i=0; i0 && nums[i] == nums[i-1.. [JAVA] 프로그래머스 - 원하는 문자열 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/181878 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 class Solution { public int solution(String myString, String pat) { int answer = 0; myString = myString.toLowerCase(); pat = pat.toLowerCase(); if(myString.contains(pat)) { answer =1; } else { answer =0; } return answer.. [JAVA] 프로그래머스 - 길이에 따른 연산 https://school.programmers.co.kr/learn/courses/30/lessons/181879 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 class Solution { public int solution(int[] num_list) { int sum = 0; int mul = 1; int answer = 0; int len = num_list.length; for(int i=0; i=11) { sum+=num_list[i]; } else { mul*= num_list[i]; } } answer = (len>=11)?sum:m.. [JAVA] 프로그래머스 - 1로 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/181880 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 class Solution { public int solution(int[] num_list) { int answer = 0; for(int n : num_list) { answer += makeOne(n); } return answer; } public int makeOne(int n) { int count = 0; while(n!=1) { if(n%2 == 0) n /=2; else n.. [JAVA] 프로그래머스 - 조건에 맞게 수열 변환하기 2 https://school.programmers.co.kr/learn/courses/30/lessons/181881 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 배열을 비교하는 법 Java - 두 배열을 비교하는 방법 (codechacha.com) Java - 두 배열을 비교하는 방법 자바에서 두개의 배열이 같은지, 다른지 비교할 때 직접 비교하는 코드를 구현할 수도 있지만, Arrays 라이브러리를 이용하면 간단하게 구현할 수 있습니다. Arrays.equals()는 인자로 전달된 두개의 codechacha.com 1) Arrays.equals().. [JAVA] 프로그래머스 - 조건에 맞게 수열 변환하기 1 https://school.programmers.co.kr/learn/courses/30/lessons/181882 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 class Solution { public int[] solution(int[] arr) { for(int i=0; i=50 && arr[i] %2 ==0) { arr[i] = arr[i] / 2; } else if(arr[i] [JAVA] 백준 1697 숨바꼭질 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net - 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 [자바 알고리즘 인터뷰] 7장 배열 (2) 빗물 트래핑 https://leetcode.com/problems/trapping-rain-water/description/ - 높이를 입력받아 비 온 후 얼마나 많은 물이 쌓일 수 있는지를 계산하라 풀이 1) 투 포인터를 최대로 이동 - 최대 높이의 막대까지 각각 좌우 막대 최대 높이 leftMax, rightMax가 현재 높이와의 차이만큼 물 높이 volume을 더해나간다. - 이 경우 적어도 낮은 쪽은 그만큼 항상 채워질것이기 때문에, 좌우 어느쪽이든 낮은 쪽은 높은 쪽을 향해서 포인터가 가운데로 점점 이동한다. - 오른쪽이 높다면 left+=1로 왼쪽 포인터가 이동하고, 왼쪽이 높다면 right-=1로 오른쪽 포인터가 이동한다. - 이렇게 하면 가장 높이가 높은 막대, 즉 '최대' 지점에서 좌우 포인터가 서로.. 이전 1 ··· 31 32 33 34 35 36 37 ··· 63 다음