[문제] https://www.acmicpc.net/problem/14499 [처음 생각] 주사위를 동.서.남.북으로 굴릴때 일반적으로 방향만 바꾸면 된다는걸 생각하지 못했다. 애초에 주사위 배치도가 주어진걸 보고 주사위 자료구조를 짜서 방향만 바꿔서 굴리면 된다는걸 알았어야 했는데....ㅜ [풀이] 1. 기본 주사위 배치표 dice 배열을 만든다. 2. 명령을 입력받으면서 그 명령의 방향으로 칸을 이동한 좌표를 구한다. 3. 굴려진 주사위 배치표 ndice 배열을 새로 만들고, 주사위를 굴려서 ndice 배열을 구한다. - 만약 동쪽이라면, 2자리와 5자리는 그대로고 나머지 배치만 반대로 된다. 4. 그리고 맵의 숫자가 0인지 아닌지를 따져서 문제의 조건대로 처리한다. 5. 주사위를 dice 배열로 갱..
[문제] https://www.acmicpc.net/problem/12100 [처음 생각] 삼성전자 작년 하반기 오전반 시험문제라고 알고있는데 아닐수도 있음! 블럭을 옮기는게 애매하다고 생각했다. 위쪽 방향으로 옮긴다면, 맨 위에서부터 생각해야하는데 옮기면서 그 다음 블럭을 앞으로 당겨줘야하는게 구현하려니 너무 복잡해졌다. 결국 소스 참고함... [풀이] 사진은 잘 보이지 않지만 내가 보기위해 정리용으로 올림! 전체 함수 구조를 봤을 때, main함수에서 moving함수를 호출하고 그 안에서 재귀호출하는 형태로 짰다. number라는 매개변수를 넣어서 5번까지만 돌아가는 것을 제한해두고 매번 5번까지 돌때마다 max_local을 구해서 결국 전체 max를 구하도록 한다. 방향은 네가지로 나눈다. 위/아래..
[문제] https://www.acmicpc.net/problem/1157 [처음 생각] 단순히 각 알파벳에 대해 마주치면서 1씩 증가하면 시간복잡도가 많이 클 것 같다. 아니면 유니코드 값으로 바꿔서 int형으로 계산할까했다. 일단 대문자를 모두 소문자로 바꾸는 절차가 필요할듯? [풀이] 1. 소문자 -> 대문자 변환(나중에 대문자 출력이니까)2. int형으로 바꿔서 각 자리 배열에 ++ 해서 저장3. max값 찾고 그 인덱스도 찾음4. 다시 int배열을 돌면서 그 인덱스값이 아니면서 max값과 같은 알파벳이 있다면 ? 출력 [참고] https://www.acmicpc.net/board/view/12135 [Code] https://github.com/dbwls94/gomulsang/blob/youji..
[문제] https://www.acmicpc.net/problem/1037 [처음 생각] 일단 약수가 어떤 순서로 입력되는지가 안주어져서 마구잡이로 주어진다는 가정을 하고 시작했다. [풀이] 약수 개수가 1개일 때와 2이상인 짝수일때로 나눠지므로, 1개일때는 그 약수를 제곱해주면 되고, 짝수일때는 약수 중에서 가장 큰 수와 가장 작은 수를 곱해주면 된다. [Code] https://github.com/dbwls94/gomulsang/blob/youjin/BOJ/src/boj_1037/Measure.java
[문제] https://www.acmicpc.net/problem/1654 [처음 생각] 입력되는 k개의 랜선의 길이가 2^31-1보다 작거나 같은 자연수이기 때문에 뭔가 2로 나눠서 푸는 문제일 것 같은 느낌이었다... [풀이] 이분 탐색으로 풀었다. 입력된 랜선 중에서 가장 긴 길이의 랜선을 찾아서 그 길이를 right로 놓고 left는 1로 두어서 mid값을 계산한 뒤, mid값으로 전체 랜선의 길이들을 나누었을 때 몫들의 합이 n보다 작다면 더 작은 수로 나눠야 하므로 right를 mid-1로 갱신하고 똑같이 반복한다. 만약 그 몫들의 합이 n보다 크거나 같다면 result값에 일단 그 mid값을 넣고 left를 mid+1로 갱신한다. 몫들의 합과 같을 때와, 클때를 따로 나누지 않는 이유는 가장..
[문제]https://www.acmicpc.net/problem/1992 [처음 생각]전체 영상 map을 검사해나가면서 하나라도 다른 값이 있으면 분할하는 방법영상 map에서 이중 for문으로 분할하는 메소드를 재귀로 호출하는 방법 [풀이]전체 영상 map을 검사하면서 하나라도 다른 값이 나오는 경우 flag를 false로 바꾸고 break로 빠져나온다.flag가 true이면 0인지 1인지만 체크해서 반환하고flag가 flase라면 영상 map을 4등분해서 각 범위마다 다시 메소드를 재귀호출하여 result를 구한다.4등분하면서 메소드에 전달하는 매개변수는 각 영역의 왼쪽 위 좌표와 오른쪽 아래 좌표값을 전달한다. [나중 생각]처음부터 전부 분할해서 반환 값이 모두 일치하면 그 값으로 출력하고 다르면 나..
[문제]https://www.acmicpc.net/problem/10158 [처음 생각]삼성 SDS SW 시험을 볼 때 1번 지네문제와 베이스가 비슷하다는 생각이 들었다. 그때도 지네가 map을 돌아다니면서 (진행 방향이 이 문제처럼 정해져있었는지는 생각이 안남) 벽에 부딪히면 꼬리가 길어지는 형태인데 그때 벽에 부딪히는 예외처리를 하지 못해서 모든 테스트케이스를 통과하지 못했다.그럼에도 이 문제를 보고 처음엔 2차원 배열로 map을 거꾸로 뒤집어서(좌표계가 아닌 배열로 나타내야 하니까) 진행방향의 모든 예외처리를 하려고 했다... [풀이]처음 진행방향이 오른쪽 위쪽으로 정해져있기 때문에, map의 좌우 벽면과 상하 벽면에 부딪힐 때 경우를 따로 생각한다. 좌표의 flag 역할로 dx, dy를 정의한다...
- Total
- Today
- Yesterday
- spring
- parametric search
- 10809
- 2048 game
- 12100
- 알파벳 찾기
- 째로탈출2
- 1085
- ACM Craft
- 1157
- 조합 알고리즘
- acmicpc
- 1037
- Java
- 파라메트릭
- lottie
- 위상정렬
- 약수
- combination
- BOJ
- mybatis
- acmpicpc
- 이진 탐색
- 단어 공부
- 이진 검색
- 7576
- 자료구조
- 13460
- 7569
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |