본문 바로가기

전체 글232

피로도 ㅇ 문제 처음에 조건보고 너무쉽네ㅋㅋ 하고 자세히 보니, 모든 경우의수를 돌아봐야겠다 싶어서 절망했다.. 일단 조건은 dungeons를 쭉 순회할때, dungeons의 행이 k 이하일때, k - 열을 해주고 cnt++ 해준다. 그럼 끝인데, 문제는 모든 경우의수를 어떻게 만드냐가 관건이었다. 그래서 그냥 모든걸 메서드로 만들기로 생각하고 순열을 만드는 메서드를 만들어 재귀로 풀었다.(사실 구글링함) ㅇ 내풀이 //저장한 permutation 을 불러온다. //각 순열에서 maxTry를 해서 answer에 저장하고 전에 저장한 answer보다 크면 answer에 저장. public static int solution(int k, int[][] dungeons) { int answer = 0; List pe.. 2023. 10. 19.
프로세스 오늘도 큐를 쓰는게 훨씬 편할거같아서 한번 써봤다. ㅇ 1트 public static int solution(int[] priorities, int location) { int answer = 0; //빈 큐를 하나 만들고 거기에 priorities 넣음 Queue q = new LinkedList(); for(int i = 0; i < priorities.length; i++){ q.add(priorities[i]); } Queue resultQue = new LinkedList(); //만약 큐의 첫번째값이 뒤에있는값보다 작을때 뽑아서 다시 뒤로 넣음 //만약 첫번째값(current)이 뒤에있는거보다 크거나 같을때 resultQue 로 넣음 while(!q.isEmpty()){ int current .. 2023. 10. 18.
기능개발 원래는 스택/큐 문제지만, 굳이 안써도 될것같아서 안쓰고 한번 풀어봤다.(그래서 엄청 오래걸렸다.) ㅇ 1트 public static int[] solution(int[] progresses, int[] speeds) { //몇번 더해야하는지를 넣는 배열생성한다. int[] addTo100 = new int[progresses.length]; //100까지 몇번더하는지 구해서 addTo100 배열에 넣는다. for (int i = 0; i < progresses.length; i++) { int target = 100 - progresses[i]; addTo100[i] = (int) Math.ceil((double) target / speeds[i]); } //answer에 넣기 전, 그룹을 지어서 갯수.. 2023. 10. 17.
괄호 회전하기 ㅇ 문제 먼저 문제를 꼼꼼히 읽으며(그렇지 못했다. 그래서 한시간날림) 수도코드를 작성해보면, // 1.문자열을 왼쪽으로 한칸씩 이동하는로직 // 첫번째문자 따로 빼놓기 // 두번째문자부터 한칸씩 왼쪽으로 이동 // 아까첫번째 문자는 맨마지막으로ㄱㄱ // 2. 이과정에서 나온 char[]을 유효한지 검증 // 빈스택만들기 // 스택에 여는괄호면 푸쉬, 닫는괄호면 팝 // 두개 짝 맞는지 비교한다. // 3. 이과정을 반복한다. ㅇ 1트 public static int solution(String s) { int answer = 0; //문자열s 가 널이거나 비어있을경우 그냥 0 if (s == null || s.isEmpty()) { return 0; } char[] chars = s.toCharArra.. 2023. 10. 16.