Algorithm
-
[백준 2798번] 블랙잭Algorithm/기타 2019. 11. 28. 22:26
백준알고리즘 2798번 : 블랙잭 배열에 3중 for문을 돌리고, break에 label을 이용하여 소요 시간을 줄이려고했으나, 그것은 다양한 경우의 수를 생각하지 못한 나의 불찰이었다. 따라서 나는 배열을 정렬하는 등의 헛짓을 했지만, 굳이 안해도 되겠다. 단순히 3중 for문을 이용하여, 모든 경우의 수를 돌려보면 된다..! 풀이 과정 1. 각 카드의 숫자들을 배열에 집어넣고, 3중 for문을 통해 이를 각각 뽑을 수 있도록 한다. 2. 미리 설정해둔 int 변수 T의 값을 조건문에 따라 바꿔준다. 조건문 : (arr[i]+arr[i2]+arr[i3]T) → 3장의 합이 딜러의 숫자 M보다 작거나 같고 && 기존 T보다 는 큰 경우 3. T를 출력한다. 소스 ▽ 더보기 import java.util...
-
[백준 13458번] 시험 감독Algorithm/기타 2019. 11. 26. 21:21
[java] 백준알고리즘 13458번 시험 감독 문제 자체에 예제도 많이 있기 때문에, 틀림이 없을 것으로 예상하였으나 실패가 나왔었다. 데이터의 최대 범위라는 함정만 피한다면 쉽게 통과할만한 문제라고 생각된다! 그러나 나는 함정에 빠져버렸지ㅜ 풀이 과정 1. 총 감독관은 시험장 당 1명씩이므로, 시험장의 갯수만큼 넣어준다! 2. 각 시험장의 남은 인원들을 부 감독관의 감시 가능 수 C 만큼 나눠주고, 이를 더해준다. 3. 1의 값과 2의 값을 더한다. > 1. 인원 수 계산을 위해서 부 감독관의 감시 가능 인원만큼을 계속 빼주면 안된다.(시간 초과) 2. 나눗셈을 할 때, 나누어 떨어지느냐, 떨어지지 않느냐를 고려해주어야 한다. 3. 시험장의 최대갯수는 100만, 각 시험장별 응시자 수도 최대 100만..
-
[백준 2456번] 나는 학급회장이다Algorithm/기타 2019. 11. 23. 17:45
백준알고리즘 2456번 : 나는 학급회장이다 생각보다 어려웠다. 고민해야하는게 너무 많았다고나 할까. 정렬을 한 다음에 최댓값을 구하고, 비교하고, 뭐 그래야하는지. 그러나 사실 열의 갯수가 가변적이지 않기 때문에 비교하는 범위는 한정적이다. 조건문을 몇 개 달아주면 해결할 수 있는 문제였는데, 조건식으로 이것들을 다 언제 커버해? 라는 생각이 들었지만, default, 즉 if문을 안타고 내려오는 조건들을 잘 생각해서 조건문을 짜주니 생각보다는 로직이 복잡하지 않았던 것 같다. 다만 로직을 이해하기 어려웠을 뿐 다양한 조건을 고민해봐야한다. 1. 가장 큰 점수를 획득한 후보가 유일한 경우 2. 가장 큰 sum값이 2개이상인 경우 (3명에 모두 같은 값이면 어쩌지? 생각하면 골치아파진다.. 그런 고민을 ..
-
[백준 2562번] 최댓값Algorithm/기타 2019. 11. 20. 23:06
백준알고리즘 2562번 : 최댓값 Input 값이 가변적이지 않고, 강제적으로 9개가 주어진다. 이중에서 최댓값을 구하고, 이게 몇 번째 수인지 맞추는 문제이다. 즉, 각 9개의 값들과 그들이 호출된 순서를 저장한 다음, 정렬을 통해 순위를 구해주면 되는 문제이다. 나는 조금 단순 무식한 방법으로 했는데, 길이 9의 정수 배열을 2개를 만든다음, input 값을 받을때 바로 저장하였다. 저장 한 뒤에는 배열 1개만 sort를 돌려서 최댓값을 찾았고, 나머지 배열 한개와 해당 max값을 비교하여, 정렬이 되지 않은 배열에서 해당 숫자의 위치를 찾았다. 소스 보기 ▽ 더보기 import java.util.Arrays; import java.util.Scanner; public class Main {//256..
-
[백준 10172번] 개Algorithm/기타 2019. 11. 19. 22:45
백준알고리즘 10172번 : 개 입력 값 없이 단순히 출력을 하면 되는 문제이다. System.out.println()을 여러개 사용해서 출력을 해도 되나, 어차피 큰따옴표나 역슬래쉬 등의 복병이 많이 있기에 단순한 Ctrl CV만으로는 성공이 불가하다. 문자열에서 역슬래쉬(\), 큰따옴표("), 작은따옴표(')는 일반적인 문자들과 같이 삽입해서는 올바르게 출력할 수 없다. 다음 3개의 문자 앞에 역슬래쉬(\)를 한번 더 붙여줘야 출력하라는 뜻으로 이해하고 출력한다. 또한, println을 여러개 쓰는게 번거롭다고 생각되면 \r 을 문자열 내에 삽입하면 줄바꿈이 수행된다. 처음에 "출력형식이 잘못되었습니다." 라는 메시지가 나와서 어리둥절했는데.. 검색을 해보니 완전히 출력 값이 일치하지 않아서 나오는 ..