본문 바로가기

728x90

전체 글

[프로그래머스] 디펜스 게임 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 dfs, dp등 여러 방법을 고려해봤지만 각 변수(n, k, enemy의 길이)가 너무 길어 시간초과가 걸렸습니다. 적들을 만나는데 순서가 있어 정렬을 사용하지 못하겠다고 생각했지만 조금 바꿔보면 가능했습니다. 처음부터 모든 적을 무적권없이 해결한다 가정하고 한계가 올 때마다 그동안 만난 적 중 가장 힘든 적(자동으로 계산하기 위해 우선순위큐를 사용)을 무적권으로 넘겨 다시 병사를 회.. 더보기
[프로그래머스] 과제 진행하기 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/176962# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 유사한 문제 2023.10.30 - [[IT] 코딩테스트/[문제 및 풀이] 프로그래머스] - [프로그래머스] 택배상자 / 자바(Java) 해설 시작 시간 순서대로 정렬 후 조건에 맞춰 진행하며 구현하면 해결 가능한 문제입니다. 0. 입력값 정리 for(int i=0;io1[1]-o2[1]); 객체를 따로 만들지 않고 int배열로 입력값을 정리하기 위해 String값을 저장하기 위한 Map.. 더보기
[프로그래머스] 리코쳇 로봇 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 2차원배열에서의 4방탐색과 bfs를 통해 목표까지의 최단 횟수를 구하는 문제입니다. bfs를 구현하기 위해 큐를 사용합니다. 큐에는 특정 좌표(r,c)를 담는 1차원 배열을 넣어줍니다. 여기서 중요한점! 여러번 이동하다 이전에 갔던 곳을 표시하는 boolean 2차원 배열이 필요합니다. 목표까지의 최단 횟수를 구하기 때문에 이전에 갔던 곳을 간다면 목표로 도달하는데 그 곳보다 무조건 .. 더보기
[프로그래머스] 두 원 사이의 정수 쌍 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 r2보다 작은 모든 점을 일일히 계산하기에는 값의 범위가 너무 큽니다. 따라서 원이란 각 사분면이 서로 동일하므로 한 사분면의 개수를 구해 4배를 해주면 더 간단하게 해결 가능합니다. 이때 각 축을 주의해야하는데 저는 y축을 제외했습니다. 따라서 x축 기준으로 1~r2의 값을 확인합니다. 각 x별 큰 원과 만나는 점을 max, 작은 원과 만나는 점을 min으로 정합니다. max는 버림.. 더보기
[프로그래머스] 요격 시스템 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 가로 방향으로 발사되는 적 미사일을 세로 방향으로 발사되고 관통되는 미사일을 이용해 요격하여 모든 적 미사일을 파괴할 것입니다. 이때 최소로 필요하는 요격 미사일 개수를 구하면 되는 문제입니다. 타겟의 갯수가 500,000개로 각각의 수를 알아보기는 너무 많아 그리디 방식으로 해결방향을 잡습니다. 모든 타겟을 맞추어야 함으로 특정 기준으로 정렬하여 한 타겟의 범위에 포함되는 타겟을 제.. 더보기
[프로그래머스] 광물 캐기 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 작업이 끝날때의 최소 피로도를 구하는 문제입니다. 광물을 순서대로 캐야하며, 광물의 순서에 규칙이 있는 것이 아니여서 완전탐색이 필요합니다. 또한 모든 가지수를 대입할 때 최대 광물의 수 50, 곡괭이는 각각 5개씩이므로 각 곡괭이의 선택 경우의수는 3의 10제곱정도라 시간, 공간 복잡도에 무리가 가지 않고 문제를 해결할 수 있습니다. arr 이차원 배열을 통해 [곡괭이][광물] 인 .. 더보기
[프로그래머스] 피로도 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 각 던전을 확인하는데 소모 피로도와 현재 피로도의 차이, 최소 필요 피로도 2가지를 비교해야하기 때문에 완전탐색으로 모두 확인해보아야 합니다. 따라서 완전 탐색 중 dfs를 이용해서 해결했습니다. 방문여부를 확인할 배열 visited[], 가장 많이 돈 던전 수를 확인할 answer를 외부에 저장해 줍니다. 이후 dfs를 구성해 줍니다. public void dfs(int count, .. 더보기
[프로그래머스] 할인 행사 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 2개의 map을 사용하여 생각보다 간단하게 해결했습니다. want, number배열을 기억하여 답을 확인해줄 Map (input) discount의 값을 하나씩 받으며 최근 10일간의 정보만을 가질 Map(counter) number의 원소합은 10이므로 오직 둘이 같은 경우에만 모든 물건을 원하는 만큼 살수 있으므로 두 Map이 같다면 answer를 늘려줍니다. 2중 for문이 생기.. 더보기

728x90