본문 바로가기

Programming/Algorithm 193

백준 2048 정답 참고 1. 일단 큐를 사용해서, 합하는 함수를 만든 것이 대단.2. dfs 에서 맵을 안가지고 가고, 깊이만 가지고 갑니다.3. 그래도 리턴되면 해당 뎁스에 따른 map store 를 가지고 있습니다.4. 변화는 항상 조심스럽게 합니다. merge를 하고 depth 를 +1 합니다.5. 내부에 들어가서 for 문을돌리도록 합니다. 처음에 들어갈 때, for 문을 들어가지 않고,6. 최대한 간편하게 짜도록 합니다.7. 0을 무시하기 위해서 0이면 큐에 넣지 않습니다. 그리고 idx 변수를 사용해서 어떻게 이동하는지를확실히 합니다.8. 그리고 큐의 첫번째 데이터를 저장하기 위한 변수를 따로 설정합니다. 9. dfs 는 가장 간단하게, 최소화 하도록 합니다. 1234567891011121314151617181920.. 2018. 4. 10.
백준 13460 구슬 탈출 2 1. 째로탈출 완전 시뮬 문제라고 생각했는데2. 큐로 푸는 방법이 있었다...3. 이동하는 방법이 나와있고,4. 겹쳤을 때는 처리하는 방법5. 공이 겹치는 경우 처리하는 방법6. 10번 돌려도 안되는 경우7. 큐에서 와일문을 2개 돌리는 방법이 나와있습니다. 놀랐다. 내 지식으로 흡수하도록 하겠습니다. 불과 3개월전에 봤을 때, 큐를 쓰는 것보다 단순하게 시뮬구현한 코드가 좋다고 생각했는데, 큐를 활용하는 것이 메모리나 시간활용 부분에서 상당히 효율적이다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747.. 2018. 4. 10.
백준 14499 주사위 굴리기 1. 27분컷2. 내용에 써있는대로 바로바로 코딩합니다.3. 왜곡하지 말고 바로 씁니다.4. 오께이.5. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394/*1732 주사위를 굴려봅시다.*/ #include using namespace std; #define SIZE 25 int map[SIZE][SIZE];int N, M, startX, startY, K;int command[1000];int dice[7];int dx[] = { 0,.. 2018. 4. 6.
백준 14503 로봇 청소기 1. 주어진 조건대로 코딩을 하면 됩니다.2. 턴과 시간에 대해서 지난번보다 더 자연스러워졌습니다.3. 그리고 조건을 내가 스스로 정리하면 좋습니다. 지금 현재 정리되어 나와있었기 때문에 쉽게 할 수 있었습니다.4. 그리고 한번 조건문에서 틀린것에 대해서 다음에는 틀리지 않도록 합니다. continue 문을 써야하는 곳과 아닌 곳을 확실하게 구분하도록 합니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596/*1700 문제 시작.. 2018. 4. 6.
백준 14888 연산자 끼워넣기 1. 10분컷 문제2. dfs 는 컴퓨터가 어떻게 돌아가는지 스스로 짜보고, 그 순서대로 돌아가도록 구현을 하면 됩니다.3. 이번 문제는 모든 연산자를 사용해보아야 하므로, 연산자를 하나씩 교대해가면서, 그리고, 다른 연산자부터 들어가도록 순서대로 쭉쭉 내려가도록 설정 되어 있습니다.4. dfs 의 흐름을 파악해야 합니다. 빠르게 효율적인게 아니라 완전하게 실수없이 탐색하도록 하는것이 목표입니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657/*1645 연산자 끼워넣기 문제10분컷시작합니다.*/ #include #include using namespace std;.. 2018. 4. 6.
백준 13458 시험 감독 1. 시험 감독 문제2. 출력이 long long 으로 나올 수 있다는 것만 뺴고는3. 어렵지 않습니당 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354/*1625 시험감독 문제풀이시작ㄱㄱN 시험장.Ai명이 있습니다.총가독관 한방 B부감독관 한방 C명총감독관은 1명, 감독관은 여러 명 가능합니다.필요한 감독관 수의 최소값을 구하는 프로그램.*/ #include #include using namespace std; int N;int A[10000001];int B, C;long long ans; void problemIn() { scanf("%d", &N); //cin >> N;.. 2018. 4. 6.
백준 14502 연구소 1. dfs, bfs, 를 둘다 사용해야 풀리는 문제로 전형적이라고 할 수 있습니다.2. dfs 안에 맵을 따라가게 하도록 만들고, 저장해둔 맵을 다시 복원하는 것까지가 키포인트입니다.3. 각각 함수가 제 기능을 하는지, 그리고 어디서 init 을 해주어야 하는지 명확하게 하면 됩니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115.. 2018. 4. 6.
백준 14501 퇴사 1. dfs 를 들어갈때 문제와 같이, 할 수 있으면? 할 수 있으면, 조건이 들어가야 합니다. 그리고, 건너뛰는 경우도 생각하도록 합니다. 2. 그리고 dfs 의 끝판왕인 리턴문을 어떻게 해주는지 명확하게 합니다.3. 보통 1로 시작하는 인덱스는 맞춰서 계산하도록 합니다. 그래야 헷갈리지 않습니다.4. 맵의 형태인데 1로 인덱스 시작하는 것은? 그것은 저는 보통 0으로 합니다. 그리고 인풋을 변경하는 방향을 취합니다. 5. 맵을 인덱스 맞추는 것도 나쁘지 않을 것 같습니다. 그럼 1부터 엔까지 해당 합니다. 오께이. 0 ~ 엔-1 인데1 에서 엔까지입니다. 그리고 1 이하이면, 엔+1 이상이면 이런식으로 바꿔주면 됩니다. 그리고 엑스 와이가 변경되어서 나오면? 컴퓨터가 흐르는 방향에 맞추는 것이 좋습니.. 2018. 4. 5.
swe 4008 숫자 만들기 1. dfs 는 어떤 변수를 살려서 저장하고 있을까가 가장 중요합니다.2. 그리고 완전탐색을 위해서 for 문이나, 순차적인 방향이 중요합니다.3. 그리고 가장 중요한 것은 리턴 구분입니다. 어떨때 리턴이 되는지 확인 하도록 합니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172/*2018.04.04.1810숫자 만들기최대와 최소가 되는 것,두 값의 차이를 계산*/ #include #include using namespace std; int maxVal = -2123456789;int minVal = 21234.. 2018. 4. 4.
백준 13901 로봇 1. 시뮬레이션 문제입니다.2. 멈추는 동작을 어떻게 판단할 것인가에서 디버깅하였습니다.3. 문제에 나와있는대로, 원하는 방향에 갈 수 없으면 턴을 하고 이것을 ++ 합니다.4. ++ 3까지 해서 3번까지 턴했는데도 벽이면, ++을 하고 바로아래에 4이상이면, 조건을 달아서 아웃되도록 만듭니다. 이러한 문제가 주로 출제 될 것으로 예상됩니다. 시뮬레이션 문제를 보면 좋아해야 할 정도로 풀도록 하겠습니다. 다음으로 퇴사문제와 연산자 문제 한번 다시 풀어보도록 하겠습니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071.. 2018. 4. 4.