본문 바로가기

분류 전체보기

[C/C++] BOJ 3190 :: 뱀 https://www.acmicpc.net/problem/3190 문제를 제대로 안 보고 풀어서 계속 예제 3번이 이상하기 나오길래 아주 그냥 정독을 하고나서 원인을 알았다 ㅠ 나는 꼬리를 자르고 앞으로 움직여서 뱀의 머리와 꼬리가 부딪히는 경우를 처리하지 못하고 있었당.. 앞으로 움직이고 처리한 후에 꼬리를 잘라야 한다능.. 문제를 정독합시다 ㅠㅠ QUEUE로 풀려고 했는데 QUEUE에 뱀의 몸을 넣었을 때 전체를 어떻게 또 다 뒤지면서 비교해야 하나 방법을 잘 모르겠어서 VECTOR로 풀었다. https://github.com/j2wooooo/Daliy_Algorithms/blob/master/Daliy_Algorithms/BOJ_3190/BOJ_3190.cpp 123456789101112131415..
[C/C++] for문 조건에 따라 다르게 만들기 백준 2048(EASY)문제를 풀다가아.. 이거 반복문 하나로도 할 수 있을 것 같은데 한 번 더 돌려야 되나... 라고 생각했던 적이 있다..ㅎ.ㅎ 그래서 반복문에서 조건식을 변형 시키는 것을 알아 보았다! 우선, 내가 문제를 풀며 하고 싶었던 코딩은 아래와 같다! if (dir == 0) // UP :: 올라가야 하는 상황일 때의 for문for (int i = 0; i = 0; i--) 이걸 두번으로 나누지 말고 하나의 반복문으로 만들 수는 없을까!? 있다!!!!!! 우선 결과를 보여주자면 이렇게 만들면 된다. if (dir == 0) {row = N - ..
[백준알고리즘] 11660번 구간 합 구하기5 https://www.acmicpc.net/problem/11660 시간 초과 혹시나 나올까봐 scanf, printf 로 풀었다! https://github.com/j2wooooo/Daliy_Algorithms/blob/master/Daliy_Algorithms/BOJ_11660/BOJ_11660.cpp 1234567891011121314151617181920212223242526272829#define _CRT_SECURE_NO_WARNINGS#includeint psum[1025][1025];int main(void){ int N, M, i,j, sx, sy, ex ,ey, val = 0; scanf("%d %d", &N, &M); for (i = 1; i
[백준알고리즘] 11659번 구간 합 구하기4 https://www.acmicpc.net/problem/11659 cin, cout 으로 하면 시간초과난다!!!scanf, printf 로 해야함..!!!! https://github.com/j2wooooo/Daliy_Algorithms/blob/master/Daliy_Algorithms/BOJ_11659/BOJ_11659.cpp 123456789101112131415161718192021222324#define _CRT_SECURE_NO_WARNINGS#includeint arr[100001];int psum[100001];int main(void){ int N, M, i, start, end, ans = 0; scanf("%d %d", &N, &M); for (i = 1; i
[백준알고리즘] 1005번 ACM Craft https://www.acmicpc.net/problem/1005 나의 코드는 2차원배열 때문에 쓸데없이 반복문을 많이 돌아야해서 trash 코드이다..하하.. 처음에 푸는 것을 접근은 제대로 한 것 같은데 정확히 어떤 방식으로 해야할지 감이 잡히지 않아서 알고리즘 분류를 봤더니 ?위상정렬? 이라고 쓰여있어서 위상정렬이 뭔지 찾아보았다 ㅠㅠ http://blog.naver.com/PostView.nhn?blogId=kks227&logNo=220620723528&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView 위의 블로그에 상세히 설명이 되어있다! 너무너무 친절하시고 똑똑하신분 ㅠㅠ본받고싶닷.. 그림 설명 보고 따..
[백준알고리즘] 1152번 단어의 개수 https://www.acmicpc.net/problem/1152 최근에 1학년 수업을 다시 들으면서 배운 내용을 복습하는 겸 풀어보았다! 수업 때에는 포인터에 대한 내용을 배웠었다! char *p = str; : char를 가리키는 포인터, str의 시작주소를 갖는다.p : str의 시작주소p+1 : p의 자료형의 크기만큼 1이 증가된 주소, char이기 때문에 p의 주소에서 1byte 만큼 이동한 곳의 주소 *p : str의 시작주소에 있는 값*p+1 : 값 + 숫자 1*(p+1) : (p의 주소 + 1byte 이동한 곳의 주소) 의 값 이를 이용한 나의 코드는 아래와 같다! https://github.com/j2wooooo/Daliy_Algorithms/blob/master/Daliy_Algorit..
[백준알고리즘] 12094번 2048(HARD) https://www.acmicpc.net/problem/12094 나에게 똥을 준 문제.. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 거의 정신 놓고 풀었음... 하도하도 안되서 다른 분들 것을 참고하였다... 정답 비율에 일조한 나의 채점 현황^^* 워매 힘든거.. dfs를 이용하여 완전탐색으로 특정 조건이 되었을 때 최대값을 찾는 문제이다!2048(EASY)와는 다르게 2048(HARD)는 count가 10까지 가야하기 때문에 수행시간을 줄이는 것이 핵심이 되는 문제이다!! 첫 번째로, 모든 count 마다의 board에 대한 visited 배열을 만들어서 저장된 최댓값보다 현재가 작은 값인 경우 가지 않는 것으로 구현하려 했다.ex) 4번 이동해서 1024가 나온 것이 저장된 최대값인데, 지금 4번 이동해서 512..
[백준알고리즘] 12100번 2048(EASY) https://www.acmicpc.net/problem/12100 으아ㅏㅏ 하다가 도저히 안되어서 다른 분들 것을 참고하였다..2차원 배열 인자로 넘기고 값 받고 할 때 계속 값이 아니라 주소를 받아와서 애꿎은 값이 변해버리는데 2차원 배열 값 인자로 주고 받는 것을 명확히 이해하고 정리해야겠다.. ㅠㅠ 같은 숫자일 때 그 방향 처음것부터 두개까지만 합치고 다음 index로 넘어가는 것을 구현할 때 실수가 있었는지 내가 했을 때 값이 제대로 나오지 않았다.. 코드도 이상하고 ㅠㅠ 그래서 다른 사람들은 어떤 방식으로 구현하는지 찾아보았는데 굉장히 여러 가지 방법이 있었다. 그 중에 나는 queue를 이용해서 이동해야 하는 곳의 값을 담아둔 후 빼면서 합쳐 갱신하는 방법을 이용해 풀었다! 전체적인 틀은 d..