본문 바로가기

728x90

프로그래머스

[프로그래머스] 푸드 파이트 대회 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 특정 숫자를 주어진 횟수만큼 앞, 뒤로 대칭되는 문자열로 만들어 출력하는 문제였습니다. 쉬운 문제이면서도 효율적으로 해결하는 방법이 여러개가 됩니다. StringBuilder를 사용해 어떤 함수들로 이런 경우에 사용할 수 있는지 보고(repeat, reverse) String의 내부에서 + 연산자를 사용을 자유롭게 사용 할 수 있음을 알게됩니다. 코드 1번코드 (StringBuilde.. 더보기
[프로그래머스] 성격 유형 검사하기 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 설문조사에 해당하는 성격유형이 어떤것일지 알 수 없어서 Map을 사용해 각 성격유형별 점수를 Map에 넣고 마지막에 성격유형을 출력시 맞는 점수를 출력하도록 하면 되는 비교적 간단한 자료구조를 이용한 구현문제였습니다. 추가로 map이 아닌 배열로만 해결하는 풀이도 깔끔해보여 가져왔습니다. 주의점 유형점수가 동일시 사전 순으로 출력 코드 import java.util.*; class S.. 더보기
[프로그래머스] 이모티콘 할인행사 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 문제를 읽다보면 확실히 해야하는 부분이 있습니다. 1. 이모티콘 플러스의 구매 여부는 각 사용자의 예산 한도를 넘기는 경우이다 -> 사용자를 기준으로 최종 구매 연산을 하며 모든 사용자는 각 이모티콘별로 동일한 할인율을 가져야 한다. -> 할인율들이 정해진 후 최종 구매연산이 가능하다. 2. 할인율은 10, 20, 30, 40% 로 이루어진다 -> 각 이모티콘별로 4가지의 가능성이 있.. 더보기
[프로그래머스] 택배상자 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 유사한 문제 2023.10.25 - [[IT] 코딩테스트/[문제 및 풀이] 프로그래머스] - [프로그래머스] 과제 진행하기 / 자바(Java) 해설 스택 자료구조를 사용하면 간편하게 구현 가능하다. order에 있는 값들을 차례로 훑어나갈 인덱스 index를 따로 만들고 for문을 통해 택배 번호를 가진 i 로 택배를 하나씩 가져와 확인한다 우선 택배를 스택에 쌓아두고 내부에 while문을.. 더보기
[프로그래머스] n^2 배열 자르기 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 문제의 예시 그림에서는 간단하게 붙이는 것으로 완성되지만 값의 범위들이 커 실제로 모두 구현하면 공간복잡도에 무리가 갈 수 있을 듯 합니다. 따라서 2차원 배열의 성질들을 통해 정답 배열에 어느 값이 들어가는지를 알면, right-left+1번만 계산을 하면 해결할 수 있을 것입니다. 문제의 목표는 left~right까지의 값들로 순서대로 이루어진 배열을 얻는 것입니다. 그렇다면 lef.. 더보기
[프로그래머스] 숫자 카드 나누기 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 두 배열의 수들을 중, 한쪽은 모두 나눌 수 있고, 한쪽은 모두 나눌 수 없는 값을 구하는 문제입니다. 한쪽을 모두 나눌 수 있다는 점에서 공약수를 생각했고 그중 가장 큰 양의 정수이므로 최대 공약수를 통해 해결한다는 방향성을 찾았습니다. 1. 각 배열의 최대공약수 구하기 공약수를 구하는 방식으로는 유클리드 호제법을 사용했습니다. 시간복잡도가 O(logN)이므로 긴 범위(500,000.. 더보기
[프로그래머스] 혼자서 하는 틱택토 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 경우의 수를 꼼꼼히 파악하는 것이 중요한 문제입니다. 문제가 생기는 경우는 O, X를 두번 연속 둔 경우와 완료된 게임에서 다음 수를 둔 경우. 크게 두가지로 볼 수 있습니다. O와 X 둘로 가능성을 나누면 4가지의 문제가 되는 조건이 나옵니다. 1. O를 두번 연속 둔 경우 : O가 선공이기 때문에 O의 개수가 X의 개수보다 2개이상 많다면 -> OC-XC>=2 2. X를 두번 연속.. 더보기
[프로그래머스] 디펜스 게임 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 dfs, dp등 여러 방법을 고려해봤지만 각 변수(n, k, enemy의 길이)가 너무 길어 시간초과가 걸렸습니다. 적들을 만나는데 순서가 있어 정렬을 사용하지 못하겠다고 생각했지만 조금 바꿔보면 가능했습니다. 처음부터 모든 적을 무적권없이 해결한다 가정하고 한계가 올 때마다 그동안 만난 적 중 가장 힘든 적(자동으로 계산하기 위해 우선순위큐를 사용)을 무적권으로 넘겨 다시 병사를 회.. 더보기

728x90