본문 바로가기
반응형

Study/Algorithm16

[Algorithm]Programmers_12952_N-Queen_Go 문제 링크 N-Queen : 링크 문제 풀이 Well Known 이군요.. 체스에서 퀸의 움직임을 알아둔다. 가로 세로 대각선 완전 만능 row, col, diagnol 방향 모두 가능하다면 하나씩 체크하면서 넘어간다. 끝까지 도착했다면 모든 조건에 만족했다는 뜻! answer += 1 package q12952 var board [][]bool var colCheck []bool func initBoard(n int) { board = make([][]bool, n) colCheck = make([]bool, n) for i := 0; i < len(board); i++ { board[i] = make([]bool, n) } } var answer int func goBackTracking(size, .. 2021. 9. 16.
[Algorithm]Programmers_43238_입국심사_Go 문제 링크 입국심사 : 링크 문제 풀이 입국심사를 진행하는 심사원들을 작업이 걸리는 시간을 기준으로 오름차순으로 정렬한다. 시간을 기준으로 이분탐색을 진행한다. 코드 package q43238 import ( "fmt" "sort" ) func binarySearch(n int, times []int) int64 { sort.Ints(times) left := 1 right := n * times[len(times)-1] answer := 0 for left < right { middle := ((left + right) / 2) tmp := 0 for _, val := range times { tmp += middle / val } if tmp < n { left = middle + 1 } else i.. 2021. 9. 15.
[Algorithm]Programmers_17678_셔틀버스_Java 문제링크 셔틀버스 : 링크 문제 풀이 생각 다 필요없고 마지막 셔틀버스가 사람으로 꽉 찼는지 아닌지만 체크하면 될듯허다. 풀이 방법 String Type의 시간 HH:MM을 Int Type으로 전환 시킬 함수와 그 반대의 함수를 생성 크루들이 셔틀을 기다리기 시작하는 시간을 toMinute함수를 통해 Int로 전환하여 그 값을 오름차순으로 sorting 앞의 셔틀부터 기준에 맞게 크루를 태워나간다. 마지막 셔틀버스에 사람이 가득 찬다면 : 콘은 마지막에 탄 사람보다 1분 일찍 나와야한다. 빈자리가 있다면 : 마지막 셔틀버스가 출발하는 시간에 나가야 한다. 4의 결과를 toTime을 통해 String으로 전환하여 return한다. 코드 import java.util.ArrayList; import java.. 2021. 9. 14.
[Algorithm]Programmers_17683_방금그곡_Java 문제 링크 방금그곡 : 링크 문제 풀이 음악 하나 하나를 저장할 class 객체를 만든다. #이 붙은(갯수는 하나지만 length가 2인) 악보를 겹치지 않는 다른 문자로 변환한다. 답이 여러개 일 경우를 대비하여 running time을 계산한다. array list에 값을 넣기 때문에 running time이 같다면 먼저 저장된 음악이 답임을 생각한다. 코드 package Programmers.LV2; import java.util.ArrayList; public class Q17683 { static class Music{ int runningTime; String name; String infos; public Music(int runningTime, String name, String infos.. 2021. 9. 3.
[Algorithm]BOJ_20056_마법사 상어와 파이어볼_Go 문제 링크 BOJ 20056 마법사 상어와 파이어볼 풀이 방법 어느정도 구현 문제에 대한 풀이방법을 깨우쳐 가는듯 하다. 다름이 아니라 해야할 것의 순서를 잘 지키는것.. \1. 맵의 필드에 하나 이상의 파이어 볼이 있을 경우 파이어 볼을 섞는다.(X) 이렇게 생각하는 순간 시간은 총알 같이 사라질것이다.. 모든 파이어 볼을 이동한다. 이동한 파이어 볼은 따로 모아둔다. 모든 이동한 파이어볼을 삭제한다. 모든 필드에 따로 모아둔 파이어볼이 있을 경우 파이어볼이 한 개 일 경우 파이어볼이 두 개 이상일 경우 조건에 맞게 조합한 후 따로 모아둔 필드에서 이동 할 파이어 볼 필드로 옮긴다. 따로 모아둔 파이어 볼을 삭제한다. package q20056 import ( "bufio" "fmt" "os" "str.. 2021. 8. 23.
[Algorithm]BOJ_14500_테트로미노_Go 문제 링크 BOJ_14500_테트로미노 문제 풀이 테트리스의 블럭은 연속된 4개의 1X1 블럭의 조합임을 이해 1의 이유로 그래프를 통해 풀이 가능 백트래킹을 이용한 풀이로 가지치기가 가능한 재귀를 사용하는 DFS를 활용 T모양의 경우 dfs로 표현이 불가능. 따로 확인을 해주어야함. (하드코딩활용..) package q14500 import ( "bufio" "fmt" "os" "strconv" ) var M, N int var dx = [3]int{-1, 0, 1} var dy = [3]int{0, 1, 0} var mmap [][]int var visited [][]bool var max int var tmp int func dfsForFindMaxVal(row, col, cnt int) { if .. 2021. 8. 12.
반응형