TIL

    [Java] 프로그래머스 Lv.2 : 소수 찾기

    [Java] 프로그래머스 Lv.2 : 소수 찾기

    https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 풀이 찾은 소수를 중복없이 저장하기 위해 자료구조로 HashSet을 사용 이미 사용했던 종이조각인지 아닌지를 확인하기위해 boolean visited[] 이용 완전탐색(DFS)으로 만들 수 있는 숫자조합을 찾고 (재귀적으로 구현) 소수인지 아닌지 판별한다. 마지막으로 set.size() 을 return 해준다. 전체 코드 import java.ut..

    [Java] 프로그래머스 Lv.2 : 카펫

    https://programmers.co.kr/learn/courses/30/lessons/42842?language=java 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 풀이 카펫 격자의 수는 다음과 같다. (노란색) = (가로-2)*(세로-2) (갈색) = (가로*세로)-(노란색) 1. 노란색 격자의 수(yellow)의 약수의 중심까지 반복문을 돌려준다. (즉, 해당 숫자의 √N까지 확인) 2. i가 yellow의 약수라면, 가로에 i+2, 세로에 (yellow/i) +2을 저장한다. (가로 >= ..

    [Java] 프로그래머스 Lv.2 : H-Index

    https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 문제이해가 잘 되지않아서 테스트 케이스를 많이 추가해서 풀었었다.. # 테스트 케이스 공유 Parameters Return [3, 1, 0] 1 [3, 1, 1, 1, 4] 2 [0, 0, 0, 1] 1 [9, 9, 9, 12] 4 [1, 1, 5, 7, 6] 3 [0, 0, 0] (테스트 16번) 0 풀이 h를 발표한 논문 수(..

    [Java] 프로그래머스 Lv.2 : 더 맵게

    https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 풀이 우선순위 큐(Priority Queue)를 사용한다. 낮은 숫자가 우선순위인 int 형 우선순위 큐를 선언하고 큐에 스코빌지수를 넣어준다. 첫번째 heap의 요소가 K이상이 될 때까지 반복문을 돌린다. 앞의 두 음식을 꺼내(pop) 새로운 음식으로 만들어 다시 heap에 넣어준다.(pull) 가장 앞의 음식의 스코빌 지수가 K이상이 되면 bre..

    [Data Structure] Priority Queue(우선순위 큐) Java로 구현하기

    [Data Structure] Priority Queue(우선순위 큐) Java로 구현하기

    Priority Queue(우선순위 큐)란? 일반적인 큐의 구조 FIFO(First In First Out)을 가지면서, 데이터가 들어온 순서대로 데이터가 나가는 것이 아닌, 각 요소들이 각각의 우선순위를 갖고있고, 요소들의 대기열에서 우선순위가 높은 요소가 먼저 제공되는 자료구조 Priority Queue를 사용하기 위해서는 우선순위 큐에 저장할 객체는 필수적으로 Comparable Interface를 구현해야한다. Comparable Interface를 구현하면 compareTo 메서드를 오버라이드하게 되는데 해당 객체에서 처리할 우선순위 조건을 리턴해주면 Priority Queue가 알아서 우선순위가 높은 객체를 추출해주는 것이다. 우선순위 큐를 구현하는데 있어 대표적인 구현 방식이 힙을 이용하는 ..

    [Java] 프로그래머스 Lv.2 : 주식가격

    https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 풀이 for문으로 해당 초 단위의 주식가격과 그 이후의 주식가격을 비교하면서 가격이 떨어지기 전까지의 시간을 센다. for문이 끝나면 answer 시간(cnt)을 넣어주고 초기화 시켜준다. 큐에서 해당 초단위를 poll 시켜주고 해당 초 단위 위치(j)를 증가시킨다. import java.util.*; class Solu..

    [Java] 프로그래머스 Lv2 : 프린터

    https://programmers.co.kr/learn/courses/30/lessons/42587?language=java 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 풀이 인쇄물의 우선순위와 위치를 저장한 Print 클래스를 만들어 큐에 넣어준다. 우선순위가 들어있는 배열 priorities을 정렬하고, 현재 큐에 들어있는 인쇄물의 우선순위와 가장 큰 우선순위(priorities[j])와 비교한다. 현재 인쇄대기 문서의 우선순위가 가장 크다면 인쇄한다. ( j 와 answer 증가) 이때, 대기문서의 위..

    [Git] ! [rejected] master -> master (non-fast-forward) 해결방법

    PS C:\Users\*\git\nwitter> git push origin master To https://github.com/ygreenb/nwitter.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/ygreenb/nwitter.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing ag..