programmers

    [프로그래머스, 12980] 점프와 순간 이동 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 72.6 MB, 시간: 0.04 ms사용 알고리즘: 그리디 알고리즘 n에서 0까지 만들건데2배 순간이동으로 이동할 수 있는 거리라면(2로 나누어 떨어진다면) 무조건 순간이동으로 이동하고,순간이동으로 이동할 수 없는 거리라면(2로 나누어 떨어지지 않는다면) 1칸 점프로 이동한다.public class Solution { public int solution(int n) { ..

    [프로그래머스, 12944] 평균 구하기 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12944 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 76 MB, 시간: 0.05 ms사용 알고리즘: 구현 class Solution { public double solution(int[] arr) { double answer = 0; for(int i = 0; i

    [프로그래머스, 49995] 쿠키 구입 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/49995 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 60.4 MB, 시간: 34.83 ms사용 알고리즘: 누적 합, 자료구조  첫째 아들의 바구니 범위를 정했을 때, 해당 범위 내의 과자 수를 한 번에 구하기 위해 누적합을 sum 배열에 저장한다.또한 첫째 아들의 과자 수가 정해졌을 때, 같은 과자 수를 가지는 범위가 있는지 한 번에 구하기 위해 누적합을 HashSet에 저장해 둔다. 2중 for문으로 첫째 아들의 바구니 범위를 정하고, sum..

    [프로그래머스, 42884] 단속카메라 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 58.3 MB, 시간: 9.76 ms사용 알고리즘: 탐욕법(Greedy)  routes를 나가는 시간 기준 오름차순으로 정렬한다.가장 먼저 나가는 차량의 나가는 시간을 out에 저장하고, out에 cctv를 설치해 준다.다음 차량 배열들을 확인한다.out 이전에 들어오는 차량들은 out에 설치된 cctv와 만나게 되므로 그냥 보낸다.(routes가 나가는 시간 오름차순으로 정렬되어 있기 때문에..

    [프로그래머스, 42842] 카펫 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 75.5 MB, 시간: 0.05 ms사용 알고리즘: 수학, 완전탐색 yellow의 가로 길이를 x, 세로 길이를 y라고 할 때,yellow = x * y이다. brown은 yellow를 한 줄 감싸고 있으므로 yellow 위아래(x * 2) + yellow 왼쪽오른쪽(y * 2) + 4개의 모서리로 이루어져 있으므로 brown = (x * 2) + (y * 2) + 4이다.이를 만족하는 x와 ..

    [프로그래머스, 12937] 짝수와 홀수 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12937 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 72.9 MB, 시간: 0.03 ms사용 알고리즘: 구현 class Solution { public String solution(int num) { String answer; if(num % 2 == 0) answer = "Even"; else answer = "Odd"; return answer; }}

    [프로그래머스, 17685] [3차] 자동완성 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/17685 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 302 MB, 시간: 233.63 ms사용 알고리즘: 트리 각 단어의 문자들을 하나의 노드로 트리 형태로 만든다.단어 "go"를 만들기 위해서 root -> 'g' -> 'o' 형태로 트리를 만든다.단어 "gone"을 만들기 위해서 "go"를 만들며 이미 생성된 노드를 타고 root -> 'g' -> 'o'까지 이동한다.이어서 이동하며 'o' -> 'n' -> 'e'를 만든다.마찬가지로 "gu..

    [프로그래머스, 12938] 최고의 집합 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 53.9 MB, 시간: 0.40 ms사용 알고리즘: 수학 집합의 모든 원소들이 수를 비슷하게 나눠가져야 곱했을 때 가장 큰 수를 얻을 수 있다.따라서 모든 원소들이 s를 n으로 나누었을 때 몫을 기본으로 가지고s를 n으로 나누었을 때의 나머지 값을 집합의 뒷 원소들이 1씩 나눠 갖는다.(answer 배열을 오름차순 정렬한 후 리턴해야 하기 때문에, 뒷 원소들을 +1 해준다.)import jav..

    [프로그래머스, 12973] 짝지어 제거하기 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 63 MB, 시간: 62.68 ms사용 알고리즘: 자료구조, 스택 문자열의 문자들을 하나씩 스택에 넣는다.만약 스택의 바로 위에 있는 문자가 현재 스택에 넣으려는 문자와 같다면, 알파벳이 2개 붙어있는 짝을 찾은 것이므로 pop을 통해 짝지어 제거하기를 해준다.그게 아니라면 해당 문자를 push 해준다.import java.util.*;class Solution{ public int..

    [프로그래머스, 12934] 정수 제곱근 판별 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12934 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 73.8 MB, 시간: 0.06 ms사용 알고리즘: 수학 class Solution { public long solution(long n) { // n에 대한 루트 계산 long x = (long)Math.sqrt(n); // 다시 제곱 long tmp = (long)Math.pow(x, 2); ..