본문 바로가기
반응형

알고리즘70

[프로그래머스 Programmers] 기사단원의 무기 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력이 2인 무.. 2024. 1. 10.
[프로그래머스 Programmers] 모의고사 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작.. 2023. 12. 13.
지구 종말에 대한 하노이 예언 만약, 지구에 종말이 온다면 남은 시간 동안 무엇을 할까? 다음은 베트남의 수도 하노이의 불교 사원에서 전해 내려오는 지구 종말에 대한 '하노이 탑' 예언이다. 고대 인도 베나레스(지금의 바라나시)의 한 사원에는 작은 구멍이 뚫린 64개의 순금 원판과 3개의 다이아몬드 기둥이 보관되어 있다고 한다. 이들 원판은 어느 것도 크기가 같지 않으며, 작은 원판이 큰 원판 위에 올라오도록 차례대로 1개의 기둥에 모두 쌓여 있다. 이 사원에서 유래되는 전설에 의하면, 수도승에게 64개의 원판을 하나씩 옮겨서 다른 기둥에 원해 상태로 부지런히 옮겨 놓으라고 명한다. (단, 원판의 이동시 작은 원판 위에 큰 원판은 올려놓을 수 없다.) 그리고 모든 원판이 다른 기둥으로 모두 옮겨질 때, 사원과 승려 그리고 지구상의 모.. 2023. 12. 12.
[프로그래머스 Programmers] 정수를 나선형으로 배치하기 문제 설명 양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n2까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요. 제한 사항 1 ≤ n ≤ 30 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 풀이한 방법은 4 x 4의 배열은 1에서부터 12까지의 외곽선을 가진 2 x 2의 배열로 접근하였다. 5 x 5의 배열은 1에서부터 16까지의 외곽선을 가진 3 x 3의 배열이다. 이를 무한히 확장시켜 나간다. 풀이 코드 using System; public cla.. 2023. 12. 11.
[프로그래머스 Programmers] 수 조작하기 문제 설명 정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다. "w" : 수에 1을 더한다. "s" : 수에 1을 뺀다. "d" : 수에 10을 더한다. "a" : 수에 10을 뺀다. 그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다. 주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요. 제한 사항 2 ≤ numLog의 길이 ≤ 100,000 -100,000 ≤ numLog.. 2023. 12. 5.
O(N) vs O(2N)은 동일한 시간 복잡도를 갖는다. O(N) vs O(2N)은 동일한 시간 복잡도를 갖는다. 결론부터 이야기하자면 O(N)과 O(2N)는 동일하다. O(N)과 O(2N)이 서로 혼동되어 다르다고 생각한다면 '입력 크기에 따라 런타임이 얼마나 빠르게 증가하는가'가 아니라 '작업 횟수'에 초점을 맞추고 있기 때문이다. 시간 복잡도는 수행시간이 아니다. 아래의 그래프를 보면서 확인해 보자 두 경우 모두 'No Of Operations'가 입력 크기에 따라 그래프가 선형적으로 증가하는 것을 볼 수 있다. 실질적으로 O(N)은 O(2N) 보다 실행 시간이 짧지만 이는 중요하지 않다. N 값이 증가하면 O(N)이 성장을 지배하게 되고 계수 2는 중요하지 않게 된다. 따라서 N의 값이 매우 커지면 둘의 실행 시간이 동일해질 것이다. 예를 들어보자 T(.. 2023. 12. 5.