본문 바로가기

전체 글

(894)
[JAVA] 프로그래머스 - 유한소수 판별하기 https://school.programmers.co.kr/learn/courses/30/lessons/120878 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    - 최대 공약수로 약분하면 더 이상 약분이 되지 않는 기약분수가 된다.   시도 1) import java.util.ArrayList;class Solution { static ArrayList list = new ArrayList(); //a와 b의 최대 공약수 public int gcd(int a, int b) { if(b==0) return a; ..
[JAVA] 프로그래머스 - 겹치는 선분의 길이 https://school.programmers.co.kr/learn/courses/30/lessons/120876 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr      시도 1) import java.util.ArrayList;import java.util.Collections;class Solution { public int solution(int[][] lines) { int answer = 0; ArrayList overlap = new ArrayList(); for(int i=0; iline..
[JAVA] 프로그래머스 - 평행 https://school.programmers.co.kr/learn/courses/30/lessons/120875 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr      문제 풀이  [프로그래머스] 평행 파이썬 (tistory.com) [프로그래머스] 평행 파이썬https://school.programmers.co.kr/learn/courses/30/lessons/120875 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞thingjin.tistory.com - 네 ..
[JAVA] 프로그래머스 - 저주의 숫자 3 코딩테스트 연습 - 저주의 숫자 3 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr      정답   class Solution { public int solution(int n) { int answer = 0; for(int i=0; i   다른 사람의 풀이  class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i
[자바 알고리즘 인터뷰] 10장 데크, 우선순위 큐 (2) k개 정렬 리스트 병합 https://leetcode.com/problems/merge-k-sorted-lists/zm - k개의 정렬된 리스트를 1개의 정렬된 리스트로 병합하라   풀이 1) 우선순위 큐를 이용한 리스트 병합  우선순위 큐  - 어떠한 특정 조건에 따라 우선순위가 가장 높은 엘리먼트가 먼저 추출되는 자료형 - 이 문제의 예제 입력값은 [[1,4,5],[1,3,4],[2,7]] 이며, 먼저 다음과 같이 반복문으로 각 연결 리스트의 첫 번째 노드를 큐에 저장한다. //각 연결 리스트의 첫 번째 노드를 큐에 저장for(ListNode node : lists){ if(node!=null) pq.add(node);} - 이렇게 하면 큐에는 각 연결 리스트의 루트인 1,1,2가 저장된다. - 그렇다면 ..
[자바 알고리즘 인터뷰] 10장 데크, 우선순위 큐 (1) 원형 데크 디자인 데크- Double-Ended-Queue의 줄임말로, 글자 그대로 양쪽 끝을 모두 추출할 수 있는, 큐를 일반화한 형태의 추상 자료형(ADT)이다. - 양쪽에서 삽입과 삭제를 모두 처리할 수 있으며, 스택과 큐의 특징을 모두 갖고 있다. - 이중 연결 리스트(Doubly Linked List)로 구현   - 양쪽으로 head와 tail이라는 이름의 두 포인터를 갖고 있다가 새로운 아이템이 추가될 때마다 앞쪽 또는 뒤쪽으로 연결해주기만 하면 된다.  - 자바에서 데크를 구현하는 Deque 자료형은 Queue와 마찬가지로 인터페이스이며, Queue를 확장해 정의되어 있다 ,- 실제 구현은 LinkedList 또는 ArrayDeque로 할 수 있다.  //데크 선언Deque deque = new LinkedL..
[자바 알고리즘 인터뷰] 9장 스택,큐 (6) 원형 큐 디자인 https://leetcode.com/problems/design-circular-queue/description/    - 원형 큐를 디자인하라, 큐가 비어 있다면 -1을 리턴하며, 해당 원형 큐의 사용 예는 다음과 같다.   풀이 1) 배열을 이용한 풀이  - 원형큐(Circular Queue)는 FIFO 구조를 지닌다는 점에서 기존 큐와 동일하다. - 그러나 마지막 위치가 시작 위치와 연결되는 원형 구조를 띠기 때문에, 링 버퍼(Ring Buffer)라고 부른다.   - 기존의 큐는 공간이 꽉 차면 더 이상 엘리먼트를 추가할 수 없다. - 심지어 앞쪽에 엘리먼트들이 deQueue()로 모두 빠져서 충분한 공간이 남게 돼도 그 쪽으로는 추가할 수 있는 방법이 없다.  - 그러나 원형 큐는 앞쪽에 공간..
[자바 알고리즘 인터뷰] 9장 큐,스택 (5) 스택을 이용한 큐 구현 https://leetcode.com/problems/implement-queue-using-stacks/ - 스택을 이용해 다음 연산을 지원하는 큐를 구현하라.  push(x) : 엘리먼트 x를 큐 마지막에 삽입한다. pop() : 큐 처음에 있는 엘리먼트를 제거한다. peek() : 큐 처음에 있는 엘리먼트를 조회한다. empty() : 큐가 비어 있는지 여부를 리턴한다.   풀이 1) 스택 2개 사용  - 가장 먼저 삽입된 아이템을 끄집어 내야 하는데, 스택은 아무리 추가, 삭제를 반복해도 가장 가장 마지막에 삽입된 아이템만 넣고 빼기를 반복하므로 하나의 스택만을 이용해서는 풀 수 없다. - 이 문제를 풀기 위해서는  2개의 스택이 필요하다.  - 특히 추출시 pop()과 조회 시 peek()는 결..