본문 바로가기

알고리즘

(70)
프로그래머스 - 라면공장 https://programmers.co.kr/learn/courses/30/lessons/42629 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 힙을 활용하는 문제입니다. 아래는 정답코드입니다. 먼저 날짜내에 들어갈 수 있는 supplies를 우선순위 큐에 집어 넣어 놓습니다. 큐에서는 가장 큰 수 부터 꺼낼 수 있도록 맨 앞에 맥스힙으로 먼저 변경을 해 놓았습니다. 그렇게 되면 조건을 만족할때까지만 큐에서 값을 꺼내게 되므로 정답을 구할 수 있습니다. 정답코드 import java.util.*; class Solution { public int so..
프로그래머스 - 조이스틱(오답) https://programmers.co.kr/learn/courses/30/lessons/42860# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그리디 알고리즘은 많이 어렵네요.. 테스트케이스 10,11을 통과하지 못해서 완벽한 풀이는 아닙니다. 다음에 다시 한번 도전해볼게요~ 틀린이유는 좌우 이동을 완벽하게 구현하지 못해서입니다. 이 풀이에서는 만약 2번째 문자열이 A라면 왼쪽으로만 탐색하게 했습니다. 그런데 'AABBBBB'AAAA' 같은 반례도 존재하더라구요 ㅎㅎ 아래는 틀린 풀이입니다. 사실 알파벳 문자열을 다 저장하는 반복문도 필요 없는 부..
프로그래머스 - H - index https://programmers.co.kr/learn/questions/8885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 h-index문제는 문제를 이해하기가 정말 어려운 문제였습니다. 레벨2로 책정된 이유는 아마 문제 해석하는게 어려워서 그런건가... 문제만 이해한다면 코드 작성은 간편한 편이었어요. 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편..
프로그래머스 - k번째수 https://programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Level1 문제이길래 간단할 줄 알았는데 생각보다 귀찮았던 문제였습니다. 제 풀이가 조금 복잡한건지 포스팅 후에는 다른 사람 풀이를 한번 참고해보도록 해야겠습니다. 이 문제에서는 디버깅이 중요하다고 느꼈고 실제로 차근차근히 풀면 금방 해결할 수 있었던 문제였던 것 같아요.4 알고리즘 문제 풀이를 꾸준히 하려고 노력 중이지만 여러 여건상 쉽지가 않네요 아쉽습니다 ㅎㅎ 정답 코드 class Solution { ..
프로그래머스 - 위장 https://programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 위장 문제를 풀이했습니다. 음.. 문제를 보자마자 뭔가 경우의 수를 구할 수 있는 수학적인 공식을 세우고 풀어야겠다라는 생각을 했습니다. (a+1)*(b+1)*(c+1)····· -1 을 하게되면 정답을 구할 수 있더라구요. 그리고 문제는 해시맵을 활용해서 풀었습니다. 해시맵의 getOrDefault함수의 쓰임새가 정말 좋더군요! import java.util.HashMap; class Solut..
프로그래머스 - 완주하지 못한 선수 https://programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 완주하지 못한 선수 문제입니다. 처음에는 hashSet을 사용해서 풀이 했는데 동명이인이 존재하는지 몰랐습니다... 그렇기 떄문에 그냥 바로 arraylist로 자료구조를 변경 후에 제출했는데 시간복잡도에서 만족을 못시키더라구요. 아 그렇다면 해쉬맵을 사용해야겠구나 라는 생각에 해쉬맵을 활용해서 풀었습니다. import java.util.*; import java.util.Iterator; cla..
프로그래머스 - 쇠막대기 https://programmers.co.kr/learn/courses/30/lessons/42585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 쇠막대기 문제로 스택을 활용한 풀이 방법입니다. 문제의 그림을 보고 겁먹지 말고 차분히 막대의 개수를 세어보면 쉽게 풀 수 있는 문제였습니다. '(' 와 ')' 가 바로 만나는 모양인 ()는 레이저라고 생각하면 되고 레이저가 발사되기 전 만나는 '(' 의 갯수만큼 쇠막대기가 추가됩니다. 그러나 이렇게 될 경우 마지막 막대기의 잘리는 부분을 카운트 할 수 없기때문에 고민했지만 ')'의 개수로 카운트..
프로그래머스 - 체육복(그리디) https://programmers.co.kr/learn/courses/30/lessons/42862#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 체육복 문제입니다. 금방 풀 줄 알았는데 테스트 케이스 하나 떄문에 생각보다 오래 걸렸네요.. 첫번 째 풀이(테스트 케이스 12 번 제외 모두 통과) 테스트 케이스 12번만 계속해서 실패해서 대체 뭐가 문제야 생각했는데 예외 케이스를 하나 찾았습니다. n = 3, lost = {1,2}, reserve = {2,3} 이런식으로 하게 되면 정답은 2가 나와야 하는데 lost 1을 먼저 처리한..