programmers

    [프로그래머스, 12929] 올바른 괄호의 갯수 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12929 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 93.6 MB, 시간: 26.49 ms사용 알고리즘: 백트래킹, 완전 탐색 처음엔 괄호 모양에 따라 dp로 풀려고 했는데 예외가 너무 많은 것 같아서 포기n의 최대가 14라 $2^{14}$ 밖에 걸리지 않으므로 그냥 완전 탐색으로 풀었다.class Solution { static int n; static int answer; public int solution(i..

    [프로그래머스, 12987] 숫자 게임 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 63.1 MB, 시간: 112.35 ms사용 알고리즘: 정렬 A와 B의 점수를 모두 오른차순으로 정렬한 후, A 배열을 순회하며 항상 최선의 경우를 찾는다.항상 최선의 경우란, 아직 출전하지 않은 B팀의 점수 중 현재 확인 중인 A팀의 점수보다 큰 수 중 가장 작은 점수가 출전하는 것이다.만약 그런 점수를 찾을 수 없다면, 아직 확인하지 않은 남은 A팀의 점수들도 찾을 수 없다는 뜻이므로 br..

    [프로그래머스, 12945] 피보나치 수 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 75.6 MB, 시간: 2.59 ms사용 알고리즘: 다이나믹 프로그래밍class Solution { private static final int MOD = 1_234_567; public int solution(int n) { int[] dp = new int[n + 1]; // 피보나치 수를 저장할 dp 배열 dp[1] = 1;..

    [프로그래머스, 12933] 정수 내림차순으로 배치하기 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12933 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 78.4 MB, 시간: 0.03 ms사용 알고리즘: 구현class Solution { public long solution(long n) { int[] count = new int[10]; // 인덱스에 해당하는 수가 몇 개인지 저장 while(n > 0) { count[(int)(n % 10)]++; n /=..

    [프로그래머스, 64063] 호텔 방 배정 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/64063 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 149 MB, 시간: 369.50 ms사용 알고리즘: 구현 map에 방 번호를 key로, key번 방을 선택했을 경우 배정해야 하는 방 번호를 value로 저장한다.key에 해당하는 값이 map에 없다면 아직 key번 방을 배정한 적이 없다고 간주하고 key번 방에 배정을 한 뒤,다음 방 번호인 key + 1을 value로 저장한다.만약 key가 map에 있다면, 이미 key번 방에 배정된 손..

    [프로그래머스, 42898] 등굣길 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 51.9 MB, 시간: 0.99 ms사용 알고리즘: 동적계획법(Dynamic Programming)  처음 문제를 풀 때는 BFS로 풀었다.BFS로 사방탐색을 하는 것처럼 이방탐색을 해줬다.(오른쪽, 아래쪽으로만 이동이 가능하니 이방탐색) 정확성 테스트는 모두 통과할 수 있었는데 효율성 테스트는 모두 시간초과가 났다. 그래서 다른 방법을 고민해 봤는데, 생각해 보니 오른쪽, 아래쪽으로만 이동이..

    [프로그래머스, 12924] 숫자의 표현 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 52 MB, 시간: 0.54 ms사용 알고리즘: 투 포인터 투 포인터 l과 r을 두고, l부터 r까지 수의 합을 sum에 저장해둔다.sum이 n보다 작다면 r++을 통해 sum값을 키워준다.sum이 n보다 크다면 l++을 통해 sum값을 줄여준다.sum == n을 찾았다면 anwer++ 해준다.class Solution { public int solution(int n) { ..

    [프로그래머스, 12932] 자연수 뒤집어 배열로 만들기 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12932 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 74.5 MB, 시간: 0.04 ms사용 알고리즘: 구현import java.util.*;class Solution { public int[] solution(long n) { ArrayList list = new ArrayList(); // 맨 뒷자리부터 차례로 list에 넣기 while(n > 0) { ..

    [프로그래머스, 42891] 무지의 먹방 라이브 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/42891# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 86.8 MB, 시간: 108.45 ms사용 알고리즘: 구현 우선 남은 음식들을 PriorityQueue(pq)에 담아두고 섭취하는데 가장 짧은 시간이 걸리는 음식을 꺼내 쓸 수 있게 해 준다.현재 남은 음식 중, 섭취하는데 가장 짧은 시간이 걸리는 음식의 섭취 시간을 min이라고 했을 때적어도 min 바퀴 돌 동안 남은 음식들은 모두 섭취 가능한 상태라고 보장할 수 있다. (min * pq..

    [프로그래머스, 43163] 단어 변환 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 72.4 MB, 시간: 0.69 ms사용 알고리즘: 너비 우선 탐색(BFS) 단어를 하나의 노드로 보고, 단어끼리 하나의 글자만 다르면 간선으로 연결되어 있다고 본다.begin에서 시작해서, 한 글자만 다른 단어들로 이동하면서(bfs) target을 찾아간다.import java.util.*;class Solution { // 변환을 몇 번 거쳐 만든 단어인지 정보를 저장하고 있는..