본문 바로가기

분류 전체보기46

나무재테크로 알아보는 Map 자료구조 나무 재테크 풀이 보러가기 https://shinyou1024.tistory.com/52 백준 16235 나무 재테크 삼성 코딩테스트(역량테스트) 기출 해싱 각 칸마다 Map 자료구조로 나무의 상태를 관리한다 { 나이 : 해당 나이인 나무 수} 형태 TreeMap : 순서가 있는 Map 자료구조 나이순으로 관리하기 위해 HashMap� shinyou1024.tistory.com TreeMap 순서가 있는 Map 자료구조 선언 이중 리스트의 요소가 Map인 구조로 작성했다 우선 new로 전체 자료구조를 생성한다 첫 번째 포문을 돌면서 i마다 new ArrayList을 add한다 두 번째 포문에서 j마다 dict.get(i)에 new TreeMap을 add한다 // 각 칸마다 트리맵 사용해 나무를 관리 {나.. 2020. 6. 3.
백준 16235 나무 재테크 삼성 코딩테스트(역량테스트) 기출 해싱 각 칸마다 Map 자료구조로 나무의 상태를 관리한다 { 나이 : 해당 나이인 나무 수} 형태 TreeMap : 순서가 있는 Map 자료구조 나이순으로 관리하기 위해 HashMap이 아니라 TreeMap을 이용했다 ⇒ 나무 마다 관리하는 게 아니라 속도가 향상된다 ⇒ 하지만 메모리는...포기한다! 오답노트 Map을 순회하면서 요소를 삭제하면 안 된다 concurrency 오류가 날 수 있다 ⇒ 임시 자료구조에 저장해 놓고 for문이 끝난 후 한 번에 갱신하자 Map을 비우고 나이 먹은 애들로 다시 Map을 구성한다 ⇒ 이렇게 안 하면 나무 수가 0인 요소가 계속 남아있게 된다! survive>0인 경우에만 agedTree에 넣어줘야 함 가을 겨울은 간단하니까 봄 / .. 2020. 6. 3.
SWEA 5650 핀볼게임 시뮬레이션 풀이 방식 모든 칸에 4방향으로 핀볼을 놓아본다 빈 칸이 아니면 해당 케이스는 패스 블록 : changeDir 배열을 참조해 다음 방향 지정 changeDir[i][j] ⇒ j 방향으로 (i+1)블록에 부딪혔을 때 바뀌는 방향 웜홀 : 이차원 리스트로 관리 1) makeWorm을 통해 (번호-6)의 리스트에 넣어준다 2) changeWorm을 통해 순간 이동 처리 ⇒ 첫 번째 웜홀 위치와 같다면 두 번째 웜홀을, 두 번째 웜홀 위치와 같다면 첫 번째 웜홀을 리턴 벽 : 경계 밖을 벗어나면 (d+2)%4를 해준다 (d+2)%4는 반대방향임 import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java... 2020. 5. 30.
백준 1525 퍼즐 풀이 방식 3 x 3을 한 줄 짜리 문자열로 만들어서 상태를 저장한다 visit을 2차원 배열 대신 Set에 문자열을 add해서 체크한다 오답노트 다음 칸을 {-3, 1, 3, 1}로 설정할 경우, {-1, 0, 1, 0}으로 델타 값을 설정하고 /, % 연산을 통해 좌표의 인덱스를 구해주는 게 더 깔끔한 방법일 것 같다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.HashSet; import java.util.LinkedList; import java.util.Queue; import java.util.Set.. 2020. 5. 30.