[Kotlin / 코딩테스트] 프로그래머스 - 두 개 뽑아서 더하기
·
알고리즘 & 코딩 테스트/Kotlin으로 푼 코딩 테스트
1. 문제 2. 코드 2-1. 첫번째 코드 class Solution { fun solution(numbers: IntArray): IntArray { val result: MutableList = mutableListOf() numbers.indices.forEach { i -> numbers.indices.forEach { j -> if (i != j) { result.add(numbers[i] + numbers[j]) } } } return result.distinct().sorted().toIntArray() } } numbers의 indices로 인덱스 참고 이중 for문에 i != j 일때 더해서 저장 distinct로 중복제거, sorted로 정렬 2-2. 두번째 코드 class Soluti..
[프로그래머스 / Java] 하샤드 수
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 문제 해석 받은 숫자의 각 자리수의 합이 나누어 떨어져야한다. 예를들어 1111을 받으면 1+1+1+1 = 4, 1111이 4로 나누어 떨어지면 하샤드 수 이다. 그럼 각 자리수를 더해서 직접 나누어 보면 되지않을까? 3. 첫번째 풀이 class Solution { public boolean solution(int x) { boolean answer = true; int x2 = x; int tmp = 0; if (x > 1000) { int a = x/1000; tmp += a; //1000..
[Java] 스택(Stack)이랑 큐(Queue)가 뭔데? + 코딩테스트 문제
·
알고리즘 & 코딩 테스트/알고리즘
1. 스택(Stack) 1 - 1. 스택이란? "쌓다", 데이터를 차곡차곡 쌓아 올린 형태의 자료구조를 말합니다 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있습니다. 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 LIFO(Last In First Out) 구조 가장 최근에 스택에 삽입된 자료의 위치를 top이라고 합니다. 활용 예시 웹 브라우저 뒤로가기 실행 취소(Ctrl + z) 역순 문자열 만들기 후위 표기법 계산 수식의 괄호 검사(연산자 우선순위 표현을 위한 괄호 검사) 1 - 2. 자바에서의 스택 자바에서의 스택은 Stack 클래스를 구현하여 제공하고 있습니다. Stack st = new Stack(); Stack의 메서드 boolean empty() : Stack이 비어있는지 확인 ..
[Java / 코딩테스트] 겹쳐진 압축 해제
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 생각 전형적인 스택 문제 ")"까지 보고 반복문 2. 코드 import java.util.*; class Solution { public String solution(String s){ String answer = ""; Stack st = new Stack(); for (char c : s.toCharArray()) { if(c == ')') { String tmp = ""; while (!st.empty()) { String t = st.pop(); if(t.equals("(")) { String num = ""; while (!st.empty() && Character.isDigit(st.peek().charAt(0))) { num = st.pop() + num; } String res = "..
[Java / 코딩테스트] 최대 길이 연속수열
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 생각 중복을 제거해야 하므로 Set을 쓰면 될거같은데 정렬을 해야하나? nums의 길이가 300,000 이므로 시간복잡도를 최대한 적게 써야한다. 정렬 없는 HashSet으로 해결 2. 코드 import java.util.*; class Solution { public int solution(int[] nums){ int answer = 0; HashSet numSet = new HashSet(); for (int num : nums) { numSet.add(num); } for (Integer i : numSet) { if(numSet.contains(i-1)) continue; int cnt = 0; while (numSet.contains(i)) { cnt++; i++; } answer = M..
[Java / 알고리즘] 탐욕 알고리즘(그리드 알고리즘)
·
알고리즘 & 코딩 테스트/알고리즘
### 1. 탐욕 알고리즘 이란? - Greedy algorithm 또는 탐욕 알고리즘 이라고 불리움 - 최적의 해에 가까운 값을 구하기 위해 사용됨 - 여러 경우 중 하나를 결정해야할 때마다, **매순간 최적이라고 생각되는 경우를 선택**하는 방식으로 진행해서, 최종적인 값을 구하는 방식 1. 탐욕 알고리즘(Greedy Algorithm) 각 단계에서 지금 당장 가장 좋은 선택을 하는 알고리즘 이 선택은 그 순간에 대해 최적일지라도, 이후의 선택에 대해서는 고려하지 않는다 여러 가능성 중 하나를 선택할 때 마다 현재의 선택이 문제의 최적 해에 얼마나 가까워지는지를 고려하여 선택을 진행한다 2. 대표적인 문제 1) 거스름돈 문제 import java.util.HashMap; import java.util..
마볼링
'알고리즘 & 코딩 테스트' 카테고리의 글 목록 (2 Page)