전체 글413 백준 15961 c++ "회전 초밥" -PlusUltraCode- https://www.acmicpc.net/problem/15961 [필자 사고]슬라이딩 윈도우 및 투포인터 문제?? 정확히는 슬라이딩 윈도우 문제가 맞는거 같다.이 문제만의 재미난 점이 중복되는 초밥이 있을 수 있다.그걸 체크하기 위해 필자는 map자료구조를 이용해서 0 혹은 1일때 sushiType의 값을 갱신해줬다. 또한 마지막 max값 갱신 때 myMap[c]에 이미 특정 값이 있을경우 +1을 혹은 그냥 max갱신할지를 정했다. 아래는 자세한 코드해설이다.[코드 해설]이 코드는 회전 초밥 문제를 해결하기 위해 슬라이딩 윈도우 방식을 적용한 구조다.1. Input() 함수목적: 문제의 입력값을 받아서 전역 변수와 초밥 배열을 초기화한다.동작 과정초밥 벨트의 총 길이 N, 초밥 가짓수 d, 연속으로 .. 2025. 8. 14. 백준 14921 c++ "용액 합성하기" -PlusUltraCode- https://www.acmicpc.net/problem/14921 [필자 사고]투포인터 문제다다만 이 문제만의 매력적인 점은 음수 및 0에 가까운 수를 찾는 다는 것이다. 처음에 무의식적으로 가장 작은수를 갱신해줬는데 그렇게 하면 안됬다.0에가까운 수니깐 값이 양수냐 음수냐에 따라 left 와 right을 바꿔줘야 됬다.또한 갱신 때는 실제 값을 넣고 비교시에는 abs를 이용한다. 재미난 문제였다.[코드 해설]함수별 설명Input()배열 크기 N을 입력받습니다.정수 배열 arr에 N개의 원소를 입력받아 저장합니다.문제 해결을 위해 오름차순 정렬을 수행합니다.이는 투 포인터 탐색의 기반이 됩니다.Game_Start()두 수의 합이 0에 가장 가까운 값을 찾는 함수입니다.투 포인터를 이용해 효율적으로 탐색.. 2025. 8. 8. 백준 1484 c++ "다이어트" -PlusUltraCode- https://www.acmicpc.net/problem/1484 [필자 사고]투포인터 문제다. left 를 1로 right을 2로 설정해놓고 하나하나 값의 비교를통해 right 하고 left를 이동시키면 된다. 하나 고민이였던 점이 종료조건이다. 나는 left+1==right 이 시점에서 diff가 G보다 큰경우 이후는 보지 않아도 된다고 판단하여 그 지점에서 종료조건을 걸었다.역시나 맞았다. [코드 해설]함수별 설명Input()사용자로부터 하나의 정수 GGG를 입력받는 함수입니다.이 값은 목표로 하는 두 제곱수의 차입니다.Game_Start()문제를 해결하는 핵심 로직이 들어 있는 함수입니다.투 포인터 알고리즘을 기반으로 한 방식입니다.left는 xxx, right는 yyy를 나타내며, y>xy >.. 2025. 8. 8. 백준 2230 c++ "수 고르기" -PlusUltraCode- https://www.acmicpc.net/problem/2230 [필자 사고]전형적인 교육적인 재미난 투포인터 문제이다.처음에 이 문제를 풀 때는 이상하게 2중포문안에 투포인터를 적용해서 풀었는데 굳이 그렇게 풀지 않아도 된다.그냥 외부 하나의 반복문안에서 특정 값보다 크면 left를 증가 특정 값보다 작으면 right을 증가하는 형태로 구현하면 되었다. 괜찮은 문제다.[코드 해설]Input()문제의 입력을 처리하는 함수입니다.정수 N과 M을 입력받고, 크기 N의 정수 배열 arr을 입력받습니다.배열을 정렬하여 이후의 탐색을 효율적으로 만들기 위한 준비 작업입니다.Game_Start()핵심 로직을 수행하는 함수입니다.투 포인터 기법을 사용하여, 정렬된 배열에서 차이가 M 이상인 쌍 중에서 최소 차이를.. 2025. 8. 8. 이전 1 2 3 4 ··· 104 다음