[level 3] 다단계 칫솔 판매 - 77486
·
코딩테스트/프로그래머스
[level 3] 다단계 칫솔 판매 - 77486문제 링크성능 요약메모리: 126 MB, 시간: 61.13 ms구분코딩테스트 연습 > 2021 Dev-Matching: 웹 백엔드 개발자(상반기)채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 11월 08일 21:46:24문제 설명민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, 조직을 운영하던 민호는 조직 내 누가 얼마만큼의 이득을 가져갔는지가 궁금해졌습니다. 예를 들어, 민호가 운영하고 있는 다단계 칫솔 판매 조직이 아래 그림과 같다고 합시다.민호는 center이며, 파란색 네모는 여덟 명의 판매..
[Silver III] 바이러스 - 2606
·
코딩테스트/백준
[Silver III] 바이러스 - 2606문제 링크성능 요약메모리: 14332 KB, 시간: 104 ms분류그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색제출 일자2024년 11월 3일 18:14:32문제 설명신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결..
[level 2] 큰 수 만들기 - 42883
·
코딩테스트/프로그래머스
[level 2] 큰 수 만들기 - 42883문제 링크성능 요약메모리: 116 MB, 시간: 76.25 ms구분코딩테스트 연습 > 탐욕법(Greedy)채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 31일 04:13:30문제 설명어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 retur..
[Gold V] 뱀과 사다리 게임 - 16928
·
코딩테스트/백준
[Gold V] 뱀과 사다리 게임 - 16928문제 링크성능 요약메모리: 14260 KB, 시간: 108 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 23일 14:15:39문제 설명뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다.주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까?게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다.플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸..
[Silver I] 쉬운 최단거리 - 14940
·
코딩테스트/백준
[Silver I] 쉬운 최단거리 - 14940문제 링크성능 요약메모리: 59064 KB, 시간: 748 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 23일 15:50:47문제 설명지도가 주어지면 모든 지점에 대해서 목표지점까지의 거리를 구하여라.문제를 쉽게 만들기 위해 오직 가로와 세로로만 움직일 수 있다고 하자.입력지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000)다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이다. 입력에서 2는 단 한개이다.출력각 지점에서 목표지점까지의 거리를 출력한다. 원래 갈 수 없는 땅인 위치는 0을 출력하고, 원래..
[Silver I] 절댓값 힙 - 11286
·
코딩테스트/백준
[Silver I] 절댓값 힙 - 11286문제 링크성능 요약메모리: 25744 KB, 시간: 280 ms분류자료 구조, 우선순위 큐제출 일자2024년 10월 23일 15:33:53문제 설명절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다.배열에 정수 x (x ≠ 0)를 넣는다.배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다.프로그램은 처음에 비어있는 배열에서 시작하게 된다.입력첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가..
[Silver II] 좌표 압축 - 18870
·
코딩테스트/백준
[Silver II] 좌표 압축 - 18870문제 링크성능 요약메모리: 366240 KB, 시간: 2024 ms분류값 / 좌표 압축, 정렬제출 일자2024년 10월 23일 15:24:55문제 설명수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.입력첫째 줄에 N이 주어진다.둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.출력첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 예제 입력52 4..
[level 3] 정수 삼각형 - 43105
·
코딩테스트/프로그래머스
[level 3] 정수 삼각형 - 43105문제 링크성능 요약메모리: 61.5 MB, 시간: 12.50 ms구분코딩테스트 연습 > 동적계획법(Dynamic Programming)채점결과정확성: 64.3효율성: 35.7합계: 100.0 / 100.0제출 일자2024년 10월 22일 10:31:46문제 설명위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다.삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성..
[Gold V] AC - 5430
·
코딩테스트/백준
[Gold V] AC - 5430문제 링크성능 요약메모리: 100472 KB, 시간: 720 ms분류덱, 파싱, 구현, 문자열, 자료 구조제출 일자2024년 10월 19일 22:03:25문제 설명선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다.함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다.함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 함수..
[Silver III] 1로 만들기 - 1463
·
코딩테스트/백준
[Silver III] 1로 만들기 - 1463문제 링크성능 요약메모리: 18092 KB, 시간: 120 ms분류다이나믹 프로그래밍제출 일자2024년 10월 18일 16:19:04문제 설명정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오.입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 다음은 문제에 제시된 예시이다. 10의 경우에 10 → 9 → 3 → 1 로 3번 만에 만들 수 있다. ..