728x90
![](https://blog.kakaocdn.net/dn/enWOe0/btr3vO2RJdV/NQ3pk0UgY9AtWQJik7Kbp1/img.jpg)
다그닥 기사단이라는 게임을 시작했습니다.
다그닥 기사단에는 유물이라는 시스템이 있는데, 보석을 사용해서 유물을 뽑을 수 있고, 유물은 공격력, 체력 등의 능력치를 올릴 수 있습니다.
유물 레벨은 100레벨까지인데, 1레벨 올릴 때마다 유물이 한개 소모되고, 레벨업 성공 확률은 100%에서 1%씩 감소합니다. 처음 레벨업할 때는 유물 한개당 거의 1레벨씩 오르는데, 점점 레벨업 확률이 떨어져서 소모되는 유물 수가 늘어납니다. 그래서 총 몇개의 유물이 있어야 100레벨이 될지 궁금해서 계산해보았습니다.
100레벨에 도달하기 위해 필요한 유물의 수 계산하기
결과만 우선 말씀드리자면, 100레벨이 되기위해 필요한 유물의 수는 573개입니다.
단, 개인의 운에 따라 더 적게 들수도 더 많이 들수도 있습니다. 평균적인 값이라고 보시면 되겠습니다.
기본적으로 아래와 같이 계산이 가능합니다.
유물이 0레벨 → 1레벨로 강화될 때는 100% 확률 → 유물 1개 필요 (100/100)
유물이 1레벨 → 2레벨로 강화될 때는 99% 확률 → 유물 1.01개 필요 (100/99)
유물이 2레벨 → 3레벨로 강화될 때는 99% 확률 → 유물 1.02개 필요 (100/98)
...
유물이 98레벨 → 99레벨로 강화될 때는 2% 확률 → 유물 50개 필요 (100/2)
유물이 99레벨 → 100레벨로 강화될 때는 1% 확률 → 유물 100개 필요 (100/1)
계산을 위한 Java 코드
계산기로는 하기 어려우니, Java로 코딩했습니다.
import java.util.Scanner;
public class StrengthenTheArtifact {
public static void main(String[] args) {
double[] successProbabilities = new double[100];
int requiredStones = 0;
Scanner sc = new Scanner(System.in);
System.out.print("도달하고자 하는 유물레벨을 입력하세요: ");
int targetLevel = sc.nextInt();
sc.close();
// 성공 확률 계산
for (int i = 0; i < 100; i++) {
successProbabilities[i] = (100 - i) / 100.0;
}
// 유물 필요 개수 계산
for (int i = 0; i < targetLevel; i++) {
double probability = successProbabilities[i];
requiredStones += Math.ceil(1 / probability);
}
System.out.println("유물레벨"+targetLevel+"을 만들기 위해 필요한 유물의 수는 " + requiredStones + "개입니다.");
}
}
Output:
도달하고자 하는 유물레벨을 입력하세요: 100
유물레벨90을 만들기 위해 필요한 유물의 수는 573개입니다.
도달하고자 하는 유물레벨을 입력하세요: 90
유물레벨을 90을 만들기 위해 필요한 유물의 수는 277개입니다.
도달하고자 하는 유물레벨을 입력하세요: 70
유물레벨을 70을 만들기 위해 필요한 유물의 수는 161개입니다.
일괄 레벨업 기능이 없어서 손가락이 부러질것 같습니다. 유물 종류가 수십종이거든요.
열심히 손가락을 놀려봐야겠습니다.
728x90
'Programming > Java' 카테고리의 다른 글
Java 리팩토링(Refactoring)의 7가지 방법과 예제 (0) | 2023.03.24 |
---|---|
[리뷰][IT] 프로그래밍 대회에서 배우는 알고리즘 문제해결전략 (4) | 2022.11.23 |
[정렬] 3. ArrayList 정렬(Sort) (2) | 2022.11.12 |
[정렬] 2. Java 배열(Array)의 정렬(Sorting) - 오름차순,내림차순,Comparable, Comparator (6) | 2022.11.12 |
[정렬] 1. 버블 정렬(Bubble Sort) 알고리즘 (3) | 2022.11.11 |
댓글