본문 바로가기

시뮬레이션33

[자바] 백준 22864 - 피로도 (java) 문제 : boj22864 필요 알고리즘 개념 그리디 알고리즘 논리적으로 최선의 경우를 만드는 규칙을 정해 모든 경우에 적용시켜서 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 뭔가 곱셈, 나눗셈으로 풀 수 있을 것 처럼 생겼는데, 단 한번이라도 M을 넘기면 안되는걸 판단하기가 많이 어려울 것 같다. 24시간만 판단하면 되므로 총 24번 매번 확인하면 된다. 확인 방식은 간단한데, 매번 A만큼 피로도가 쌓여도 M.. 2022. 10. 25.
[자바] 프로그래머스 - 크레인 인형뽑기 게임 (Lv1, Java) 문제 : Programmers-크레인 인형뽑기 게임 문제 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 필요 알고리즘 개념 시뮬레이션 문제에서 제시된 대로 구현만 해주면 된다. 스택 배열 자체로 구해도 문제 없으나, 로직 구성상 스택을 활용하면 더 깔끔하게 구현 가능하다 배열 자체에서 진행해도 되지만, 실수를 확실히 줄일 수 있고 더 맞는 자료구조가 있다면 그걸 쓰는게 맞다고 본다. 이 문제의 경우 각 열에 대해 스택 자료구조를 사용하고, 바구니도 스택을 사용할 시 코드 설계가 매우 깔끔해지고 실수의 여지도 많이 줄어든다. 그러니 스택을 사용해서 한번 구현해보자. 예를들어 코드상의 stk[]과 basket은 다음과 같은 스택 구조를 나.. 2022. 9. 17.
[자바] 백준 1244 - 스위치 켜고 끄기 (java) 문제 : boj1244 필요 알고리즘 개념 시뮬레이션 (구현) 주어진 대로 구현만 가능하다면 풀 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 주어진대로 구현만 해주면 된다. 로직은 다음과 같다. 1. 스위치 개수 n을 입력받아 해당하는 크기의 배열을 만든다. 그리고 n개의 현재 상태를 입력받아 배열에 넣어둔다. 이 때 어차피 스위치가 켜져있는지 꺼져있는지만 알면 되므로, int 배열로 해도 되고 bool.. 2022. 8. 30.
[자바] 백준 17554 - City of Lights (java) 문제 : boj17554 필요 알고리즘 개념 시뮬레이션 (구현) 주어진 대로 구현만 할 줄 알면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 영어 독해 문제이다. 영어를 잘 해석해서 그대로 구현만 해주면 되는 시뮬레이션 문제이다. 로직은 아래와 같다. 1. 크기 N을 입력받아 배열을 만들고 불빛을 모두 켠 상태로 초기화한다(boolean[]으로 하던지 int[] 로 하던지 뭘로 하던 상관 없다. 켠걸 뭘로 표.. 2022. 8. 30.
[자바] 백준 22949 - 회전 미로 탐색 (java) 문제 : boj22949 필요 알고리즘 개념 BFS (너비 우선 탐색) 탈출 까지의 최소 이동시간을 빠르게 알 수 있기 위해 BFS를 사용해야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 오랜만에 재밌는 BFS 문제였다. BFS를 이해하는데 도움이 많이될 것 같은 문제로, 풀어보면 도움이 많이될 것 같다. 우선 이 문제는 BFS를 상당히 잘 이해하고 있어야 풀 수 있다. 다른거 안들어간 순수 BFS 문제중에서는 거의.. 2022. 8. 27.
[자바] 백준 25497 - 기술 연계마스터 임스 (java) 문제 : boj25497 필요 알고리즘 개념 시뮬레이션(구현) 문제에서 제시된대로 구현을 해주면 된다. 문자열 파싱 문자열의 각 character를 살펴봐야 하므로 문자열을 다룰줄 알아야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 로직을 잘 세워서 문제에 제시된대로 구현해주면 되는 문제이다. 내 경우엔 아래와 같이 변수를 정의했다. cnt : 최종적으로 출력될 기술 시전 횟수 cntL : 현재까지 남은 'L'의 횟.. 2022. 8. 25.
[자바] 백준 25495 - 에어팟 (java) 문제 : boj25495 필요 알고리즘 개념 시뮬레이션 (구현) 문제에서 제시된 대로 구현만 할 수 있다면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 로직을 정리해보면 다음과 같다. 우선 이전 핸드폰 종류(1~9)는 bf 변수에 담아둘 것이다. 그리고 현재 배터리 소모량은 cnt라는 변수로 표현할 것이다. 누적 배터리 소모량은 sum으로 표현한다. 1. bf=0(존재하지 않는 번호), sum=0으로 초기화 .. 2022. 8. 24.
[자바] 백준 23882 - 알고리즘 수업 - 선택 정렬 2 (java) 문제 : boj23882 필요 알고리즘 개념 시뮬레이션 문제 자체가 풀이에 해당하고 문제 그대로 구현해주면 되므로 시뮬레이션이라 볼 수 있다. 딱히 이걸 알아야 풀 수 있는건 아니다. 정렬 정렬이 뭘 하는건지 알고 있어야 한다.역시 딱히 이걸 알아야 풀 수 있는건 아니다. 문제 자체가 풀이에 해당하므로! ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제 자체가 풀이에 해당하기 떄문에 별도로 말할건 없을 것 같다. 그래도 설.. 2022. 8. 6.
[자바] 백준 23881 - 알고리즘 수업 - 선택 정렬 1 (java) 문제 : boj23881 필요 알고리즘 개념 시뮬레이션 문제 자체가 풀이에 해당하고 문제 그대로 구현해주면 되므로 시뮬레이션이라 볼 수 있다. 딱히 이걸 알아야 풀 수 있는건 아니다. 정렬 정렬이 뭘 하는건지 알고 있어야 한다.역시 딱히 이걸 알아야 풀 수 있는건 아니다. 문제 자체가 풀이에 해당하므로! ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제 자체가 풀이에 해당하기 떄문에 별도로 말할건 없을 것 같다. 그래도 설.. 2022. 8. 4.
[자바] 백준 21918 - 전구 (java) 문제 : boj21918 필요 알고리즘 개념 입력받기, 배열, 반복문, 조건문 배열에 입력을 받고 조건문과 반복문을 쓸줄 알면 된다. 시뮬레이션 별건 아니고, 그냥 구현하란 말과 동일하다. 문제에서 제시된 사항을 그대로 구현해서 그대로 실행만 되면 된다. 참고로 백준에서 '구현'태그는 대강 뭐 특별히 쓸거 없을때 달아두는 경우가 많다 ㅋㅋ 그 중에 문제에서 제시된대로 구현만 잘 하면 되는 경우 보통 시뮬레이션 태그도 같이 단다. 사람마다 다를 수 있다. 내 경우엔 그렇다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고.. 2022. 7. 28.