목록분류 전체보기 (296)
The Way
문제 코드 * div1과 div2는 문제를 공유하므로 혹시 없는 문제는 같은 Round의 다른 division을 찾아보시기 바랍니다 A. Infinity Gauntlet생략. 저는 map 만들어놓고 하나씩 지웠습니다. B. High School: Become Human예상 외의 킬러 문제였습니다. 저를 포함한 많은 분들이 실수 다루는 데에 익숙하지 않다는 것을 잘 알 수 있었습니다. $x^y$와 $y^x$을 직접 계산하려는 분들은 없을것이고, 보통 생각하는게 "양변에 로그를 씌우자!" 일 것입니다. double x, y; cin >> x >> y; double t1 = y * log(x); double t2 = x * log(y); if (t1 > t2) cout > y; double t1 = y * l..
* 코드는 맨 아래에 있습니다 쉬운 문제는 거의 다 푼 것 같다. 이제 난이도 있는 문제들이 슬슬 나올.. 것 같다. # 백준 1406번: 트리의 지름# 백준 1967번: 트리의 지름트리의 지름을 구하는 좋은 알고리즘이 있다.http://blog.myungwoo.kr/112여기에 잘 설명되어 있음 # 백준 11650번: 좌표 정렬하기# 백준 11651번: 좌표 정렬하기 2pair은 문제의 조건대로 비교 연산자가 잘 정의되어 있으므로 사용하면 된다11651번의 경우 연산자 정의를 새로 하기보단 순서를 바꾸어주면 된다. # 백준 10814번: 나이순 정렬stable_sort 문제이다.그런데 한쪽이 string이라 약간 번거로운 면도 있고, swap시 시간도 오래 걸릴 것 같아서string은 따로 저장하고, ..
* 코드는 맨 아래에 있습니다 울 학교 학생분께 ACM-ICPC 같이 나가자고 연락이 왔다나랑 같은 휴학생이고 되게 열심히하실 것 같고 성격도 완전 천사같다앞으로 더 열심히 해야겠다 # 백준 10799번: 쇠막대기간단한 스택 문제. 스택에 막대 n개가 쌓여 있을 때 레이저가 자르면 n개의 조각이 더 생긴다. # 백준 1406번: 에디터특이하게 list를 사용하는 문제이다.list에서 insert와 erase할 때 iterator 위치가 약간 헷갈릴 수 있으니 주의 # 백준 10820번: 문자열 분석맨 마지막줄이 엔터가 있는지 없는지 참 아리까리하다..이것 때문에 틀림 ㅠ # 백준 11655번: ROT13뭐... 엄청 많이 접해봤을법한 카이사르 암호이다.오버플로우가 일어날 수 있으니 편하게 unsigned..
* 코드는 맨 아래에 있습니다 문제야 다 덤벼라 이얍 # 백준 7576번: 토마토BFS 문제 # 백준 2309번: 일곱 난쟁이재귀를 써야 예쁜 코드지만, 사실 7개정도면 노가다 코드가 코딩이나 성능 면에서 더 빠르다. # 백준 11403번: 경로 찾기플로이드-와샬 알고리즘이다. 알고리즘 자체는 되게 간단하기는 한데 아직 마음깊이 이해가 되지 않은 기분이다. 활용이 나오면 못 풀 것 같다. # 백준 13458번: 시험 감독디버그할 때 오류나서 배열 크기를 살짝 줄이는데, 다시 늘리는 걸 깜빡해서 자꾸 틀린다.진짜 실수하지 말자 이런 기본적인건... # 백준 1652번: 누울 자리를 찾아라구현 문제.문제가 약간 표현이 모호하다고 느낄 수도 있는데, 2칸 이상 빈칸이 이어지면 2개든 3개든 100개든 (.....
* 코드는 맨 아래에 있습니다 갑자기 머리가 나빠진 것 같다.. : 아래 5문제이다. 너무 쉬워서 당황했다.. 초심자용인가 # 백준 15733번: 나는 누구인가생략 # 백준 15734번: 명장 남정훈하.. 쪽팔리게 틀린 첫 사람이 되었다. 양발잡이끼리도 남겨줄 수 있다는 것에 주의ㅠㅠ # 백준 15739번: 매직스퀘어마방진 문제. 가로, 세로, 대각선을 체크하고 숫자가 한번씩 쓰였는지도 체크해주어야 한다.사족으로 첫 틀왜맞의 경험이었다. 실수로 세로 체크를 안했는데도 맞았다는... # 백준 15735번: 삼각약간 까다로운 문제이다.나 같은 경우 제대로 된 방향과 뒤집힌 삼각형을 따로 세주었는데,갯수는 정방향의 경우(1 + ... + n) + ... + (1 + 2) + (1)역방향의 경우(1 + ... ..
* 코드는 맨 아래에 있습니다 갑자기 급 게을러졌다. 13일에 7시간을 못채우니 14일은 그냥 어영부영 아무것도 안하고 날려버렸다.나태함은 만악의 근원이다. 나태해지지 말고 항상 노력해야겠다. # 백준 14501번: 퇴사기초적인 DP 문제인데 약간 헷갈렸다.일은 그 날이 시작할 때 받고, 퇴사는 그 날 저녁에 하는 것에 유의.즉, 1일짜리 일을 n일에 받았어도 그 일을 끝내고 퇴사할 수 있는 것이다. # 백준 1890번: 점프기초적인 DP 문제. 문제를 잘못읽어서 약간 헤맸다.0이 나올 때 주의하자. # 백준 1965번: 상자넣기머여 이거 LIS잖어 # 백준 1309번: 동물원# 백준 1937번: 욕심쟁이 판다# 백준 2096번: 내려가기기초적인 DP 문제 # 백준 6359번: 만취한 상범# 백준 950..
* 코드는 맨 아래에 있습니다 하루에 7시간씩 문제풀기 이틀째이다. 실력이 늘..고있다고 믿는다.오늘은 DP 문제들 위주로 풀었다. # 백준 1520번: 내리막 길기본적인 DP 문제 * 메모리 초기화 시키기 #include int arr[num1][num2]; memset(arr, -1, sizeof(arr)); # 백준 1912번: 연속합유명한 DP문제인 연속합이다.한가지 유의할 점은 숫자는 한 개 이상 선택해야 한다는 것. 즉 모두 다 음수이면 제일 큰 값을 골라주어야 한다. # 백준 10844번: 쉬운 계단 수맨 뒷자리수별로 구분해주어야한다. 0과 9는 1 차이가 아니라 9 차이이기 때문.. # 백준 11053번: 가장 긴 증가하는 부분 수열이것 역시 고전적인 문제. 일단 $O(n^2)$으로 코딩해..
algorithm에 포함되어 있는 lower_bound와 upper_bound 덕분에 앞으로 코딩이 조금 편해질 것 같은데,이름 때문인지 약간 헷갈려서 정리하고 가는 것이 좋을 것 같다. 기본적인 사용법 int arr[size] = {...}; int* ptr = lower_bound(arr, arr + size, n); 여기서 n은 찾고자 하는 수이다 반환되는 값은 다음과 같다. * lower_bound: n 이상의 수 중 가장 작은 것* upper_bound: n 초과의 수 중 가장 작은 것 (정확히는 pointer나 iterator가 반환된다)이렇게만 알아놓으면 헷갈릴 일은 없을 것 같다. int arr[2] = {3, 5};일 때 i = 0 ~ 7에 대해 각각 함수가 반환하는 포인터가 가리키는 값..
* 코드는 맨 아래에 있습니다 하루에 7시간씩 문제풀기를 한다. 상당히 벅차다.재밌는건 7시간동안 계속 풀어도 질리지 않는다는 것이다. 코딩은 나랑 정말 잘 맞는다.재능..도 있다고 나름 생각했는데 나보다 위에 있는 사람들을 볼 때마다 확실히 아니라는 걸 느낀다.뛰는 놈 위에 나는 놈 있다고나 할까ㅠㅠ항상 그들을 동경하면서, 따라잡으려고 악착같이 노력할 것이다. # 백준 1012번: 유기농 배추단순 탐색 문제 # 백준 1057번: 토너먼트규칙을 조금만 생각해보면 쉽게 풀린다.1, 2, 3...번보다는 1씩 내려서 0, 1, 2...로 해야 편할 것이다.참고로 둘이 대결하지 않는 경우는 당연히 없다. # 백준 1018번: 체스판 다시 칠하기단순 비교가 개꿀이다.최대 크기 50이라 42*42*64 = 112..
* 코드는 맨 아래에 있습니다 예전에 풀었던 백준 문제들을 한 번씩 검토해보았다.최대한 원형 코드를 유지했다. 진짜로 초보 시절에 짠 코드도 있어 지저분할지도ㅎ # 백준 1011번: Fly me to the Alpha Centauri2n - 1회 이동할 때 최대 이동거리는 1 + ... + n + ... + 12n회 이동할 때 최대 이동 거리는 1 + ... + n + n + ... + 1경계가 나뉘었으니 잘 사용하면 된다. # 백준 1016번: 제곱 ㄴㄴ 수범위가 상당히 애매하다.100만 바로 위의 소수는 1000003인데, sqrt(1조 + 100만) = 1000000.5 정도라서 100만으로 봐도 전혀 무리가 없다. long long 다루는 데 주의. # 백준 1021번: 회전하는 큐상당히 난해한 ..