DNF LOVE

[구름 에듀 문제 풀이하면서 깨달은 유의사항, 비공개] 본문

Algorithm

[구름 에듀 문제 풀이하면서 깨달은 유의사항, 비공개]

botho 2019. 8. 4. 16:16
반응형
  • 0730 - 가지치기 유의하기
  • 0801 - LUT 개념 활용하기(계산 속도 확 떨어진다. 데이터값을 인덱스로 활용하기), JAVA는 정수형 001을 출력시 0은 사라진다. format으로 설정하자.
  • 0804 - 넘겨야 하는 데이터가 많을 시(문제3B) 객체 생성하여 넘기기
  • 0807 - 입력해야할 데이터가 많으면 Scanner가 아닌 BufferedWriter로 사용하기
    • 쓰임새 : BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
  • 0807 - 배열 정렬 : Arrays,sort(배열명);
    ArrayList 정렬 : Collections.sort(boardList);
  • 0807 - LUT로 값을 집어넣으면 딱히 정렬할 필요가 없다. QA3-3문제는 LUT보다 정렬 후 비교하는 것이 공간복잡도 상 더 좋다.
  • 0807 - 피보나치에서 자릿수 자르기는  fibo[i] = (fibo[i - 2] + fibo[i - 1]) % 100000000;  이렇게 한다. 이건 아래로 8자리 짜른다는 뜻.
  • 0809 - 03E 색종이 문제 : 계산 기하학이라는 분야가 따로 있다.
    크기가 작은 배열 예시> 색종이의 도화지 크기는 100 x 100 = 100000 정도로 작은 계산은 for문 3개 이상 돌려도 됨
    기하학 적으로 겹치는 부분이 있으면 크게 보는 경우와 1x1로 보는 경우로 나누어서 생각해보자.
  • 0814 - 03F 과유불급 : 필요할 때라면 클래스를 직접 만들어서 관리하자. 자바는 Return할때 객체로 리턴이 가능해서 참 편리하지 않는가
    for(int i = 0; i < n; i++) 뿐만 아니라 for(Range r : ranges) 이 부분도 잘 이용해서 하자.
    범위가 지정해있다면, 쪼개서 더해진 놈들을 더해서 큰 놈이 될 수 있다면 이를 잘 활용해서 구현해보자.
  • 0815 - 03G 팬미팅 : 연속된, 겹치지 않는, 경우의 수 -> 빈도수로 생각하고 조건에 따라 가지치기 해보자.
  • 0919 - 문제에 일정한 규칙이 있다면,(큰 문제를 작은 문제로 쪼갤 수 있다면) 그것은 DP문제이다. DP는 재귀로 푸는 Bottom-up, 반복문이나 스택으로 푸는 Top-Down이 있다. 성능이 Top-Down이 후져보여도 성능은 비슷하다.
  • 0922 코테 준비하면서 느낀점
    • 배열 채우기(초기화) Arrays.fill(배열, 데이터)
    • 객체 생성 시 넘긴 데이터 배열 그대로 넣기 this.arr = arr.clone();
    • DP에서 memorizetion을 잘 사용하자.
    • 자료구조 사용을 잘 사용하자. Stack, Queue, List, Arr 등등 Arr에만 집착 ㄴㄴ
    •  
반응형