알고리즘

알고리즘/알고리즘 유형

[백준] 17298_오큰수 - JAVA

백준_17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 스택 참고 포스팅 [백준] 1874_스택 수열 - JAVA 백준_1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc. devhan.tistory.com 코드 import java.io..

알고리즘/알고리즘 유형

[백준] 1874_스택 수열 - JAVA

백준_1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 스택(Stack) 삽입과 삭제 연산이 후입선출(LIFO : Last-in First-out)으로 이루어진 자료구조이다. 후입선출은 산입과 삭제가 한 쪽에서만 이루어진다. 스택 용어 top : 삽입과 삭제가 일어나는 위치 push : top 위치에 새로운 데이터를 삽입하는 연산 pop : top 위치에 현재 있는 데이터를 삭제하고 확인하는 연산 peek : top 위치..

알고리즘/알고리즘 유형

[백준] 11003_최솟값 찾기 - JAVA

백준_11003 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 덱(deque) 위 문제는 슬라이딩 윈도우와 정렬을 사용하면 될 것 같지만 정렬은 nlog(n)의 시간 복잡도를 가지고, N과 L의 범위가 5,000,000인 이 문제에서는 정렬을 사용할 수 없다. O(n)의 시간 복잡도로 해결해야 한다. 정렬 대신 슬라이딩 윈도우와 덱(deque)이란 자료구조를 사용하면 이 문제를 풀 수 있다. 덱은 양 끝에서 데이터를 삽입하거나 삭제할 수 있는 자료구조이다. 왼쪽에서는 addFi..

알고리즘/알고리즘 풀이

[프로그래머스_1] 소수 찾기 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public int solution(int[][] sizes) { int answer = 0; int w = 0; int h = 0; int maxW = 0; int maxH = 0; for(int i = 0; i < sizes.length; i++) { w = Math.max(sizes[i][0], sizes[i][1]); h = Math.min(sizes[i][0], sizes[i][1]); sizes[i][0] = w; sizes..

알고리즘/알고리즘 풀이

[프로그래머스_1] 소수 찾기 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE(기본) class Solution { public int solution(int n) { int answer = 0; boolean flag = true; for(int i = 2; i

알고리즘/알고리즘 풀이

[프로그래머스_1] 소수 만들기 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public int solution(int[] nums) { int answer = 0; Arrays.sort(nums); for(int i = 0; i < nums.length; i++) { for(int j = i+1; j < nums.length; j++) { for(int k = j+1; k < nums.length; k++) { int result = isPrime(nums[i], nums[j], nums[k]); answer..

알고리즘/알고리즘 풀이

[프로그래머스_1] 숫자 짝꿍 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public String solution(String X, String Y) { StringBuilder answer = new StringBuilder(); int[] xCntArr = new int[10]; int[] yCntArr = new int[10]; for(String x : X.split("")) { xCntArr[Integer.parseInt(x)]++; } for(String y : Y.split("")) { yCnt..

알고리즘/알고리즘 풀이

[프로그래머스_1] 햄버거 만들기 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public int solution(int[] ingredient) { String recipe = "1231"; StringBuffer sb = new StringBuffer(Arrays.toString(ingredient).replaceAll("[^0-9]","")); int answer = 0; while(sb.indexOf(recipe) > -1) { int startIdx = sb.indexOf(recipe); sb.delet..

알고리즘/알고리즘 풀이

[프로그래머스_1] 2016 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE class Solution { public String solution(int a, int b) { int[] month = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; String[] week = {"FRI","SAT","SUN", "MON", "TUE", "WED", "THU"}; int sum = 0; for(int i = 1; i < a; i++) { sum += month[i]; } int idx = sum + b-1; return week[..

알고리즘/알고리즘 풀이

[프로그래머스_1] 체육복 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = n - lost.length; List list = new ArrayList(); for(int l : reserve) { list.add(l); } Arrays.sort(lost); Collections.sort(list); for(int i = 0; i < lost.length; i++) { for(int j ..

알고리즘/알고리즘 풀이

[프로그래머스_1] 모의고사 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public List solution(int[] answers) { List answer = new ArrayList(); int[] score = {0, 0, 0}; int[][] supoja = { {1, 2, 3, 4, 5}, {2, 1, 2, 3, 2, 4, 2, 5}, {3, 3, 1, 1, 2, 2, 4, 4, 5, 5} }; int idx_1 = 0, idx_2 = 0, idx_3 = 0; int len_1 = supoja..

알고리즘/알고리즘 풀이

[프로그래머스_1] 삼총사 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE class Solution { public int solution(int[] number) { int answer = 0; for(int i = 0; i < number.length; i++) { for(int j = i+1; j < number.length; j++) { for(int k = j + 1; k < number.length; k++) { if(number[i] + number[j] + number[k] == 0) answer++; } } } return answer; } } 쉬운 난이도..

알고리즘/알고리즘 풀이

[프로그래머스_1] 두 개 뽑아서 더하기 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public TreeSet solution(int[] numbers) { TreeSet answer = new TreeSet(); for(int i = 0; i < numbers.length; i++) { for(int j = i+1; j < numbers.length; j++) { answer.add(numbers[i] + numbers[j]); } } return answer; } } HashSet 자료구조를 이용할까 하다가 오름차..

알고리즘/알고리즘 풀이

[프로그래머스_1] 시저암호 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE class Solution { public String solution(String s, int n) { StringBuffer answer = new StringBuffer(); boolean isUpper = false; char alphabet = ' '; int len = 0; for(int i = 0; i < s.length(); i++) { len = n; if(s.charAt(i) == ' ') { answer.append(" "); continue; } else if(Character...

알고리즘/알고리즘 풀이

[프로그래머스_1] 예산 JAVA

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer = 0; Arrays.sort(d); if(d[0] > budget) return 0; for(int i = 0; i = d[i]) { budget -= d[i]; answer++; } } return answer; } } 이번 문제는 가진 예산에서 '최대한 많은 부서'에게 지원한다는 맥..

데부한
'알고리즘' 태그의 글 목록