부제굴능
article thumbnail
[C] 백준 2869번 write-up
algorithm/baekjoon 2023. 1. 3. 01:58

초등학교 수학시간에 풀었을법한 문제입니다. 해당문제가 만만해보여도 전혀 그렇지 않다는걸 정답 비율이 증명해주고 있습니다. 해당문제에도 함정이 정말 많은데요 많은 분들이 +A 미터 -B미터 해서 최종 V까지 사이클을 돌리시는데요 함정에 걸리신 분들입니다. 입력값 범위가 1e9 입니다. 10억개라는 뜻이죠 그런데 문제의 시간제한은 0.15초로 나와있습니다. 즉 for 문 하나조차도 돌리지 못한다는 뜻입니다. 만약 여기서 while문이나, for문을 먼저 떠올리신 분들이라면 시간복잡도 개념을 공부해보시는게 좋을것 같습니다. 그렇다면 어떻게 풀어야 할까요? 간단한 수학공식으로 풀 수 있습니다. 하루동안 A미터를 올라가고 B미터를 떨어집니다. 그렇다면 이는 하루동안 총 올라갈 수 있는 거리는 A-B미터라는 뜻이..

article thumbnail
[C] 백준 1193번 write-up
algorithm/baekjoon 2023. 1. 3. 00:56

2292번 두 번째 버전느낌의 문제입니다. 2292번이 등차수열이라면 해당문제는 조금 더 응용해야 되는 것 같네요 문제를 풀기 전, 로직구상을 하고 문제를 풀어보겠습니다. 우선 지그재그 순서로 분수가 주어진다고 합니다. 그럼 지그재그로 주어지는 분수들을 일렬로 펼쳐보면 다음과 같이 나옵니다. 1/1, 1/2, 2/1, 3/1, 2/2, 1/3, .... 일렬로 펼쳐진 분수들을 지그재그로 나뉘어 볼게요 1번째 열: 1/1 2번째 열: 1/2, 2/1 3번째 열: 3/1, 2/2, 1/3 4번째 열: 1/4, 2/3, 3/2, 4/1 . . . 이제 규칙성이 보이네요! a/b 형태의 분수들의 범위는 다음과 같이 정의할 수 있습니다. *n은 열의 번호입니다! 1. n이 짝수인 경우 a: 1 ~ n b: n ~..

article thumbnail
[C] 백준 2292번 write-up
algorithm/baekjoon 2023. 1. 2. 20:05

해당 문제는 간단한 등차수열만 사용하여 풀 수 있습니다. 저는 벌집의 n번째 겹을 이용하여 풀었는데요 1번째 겹 : 1 2번째 겹: 2, 3, 4, 5, 6, 7 3번째 겹: 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 4번째 겹: 20, 21, 22, 23, 24, 25, 26. 27, 28 ... 37 . . . n번째 겹에서 나타나는 규칙을 찾아보면 다음과 같습니다. 2번째 겹의 마지막으로 나타나는 숫자는 1 + 6 3번째 겹의 마지막으로 나타나는 숫자는 1 + 6 + 6 + 6 4번째 겹의 마지막으로 나타나는 숫자는 1 + 6 + 6 + 6 + 6 + 6 + 6 입니다. 수열의 공차는 6, 12, 18, 24 가 될거구요 공차의 공차는 6이 됩니다. 이를 바탕으..

article thumbnail
[C] 백준 1712번 write-up
algorithm/baekjoon 2023. 1. 2. 19:28

브론즈2 1712번 손익분기점 문제입니다. 브론즈2 문제라 write-up 작성을 하지 않으려 했지만, 문제가 재밌어서,, 이 문제에는 함정이 무려 2개나! 존재합니다. 그 함정을 잘 캐치하셔야 할 것 같아요 첫 번째 함정은 A, B, C의 범위입니다. 이것을 보기전에 로직부터 구상해야하는데요 1. 고정비용 A, 가변비용 B, 물건가격 C가 주어졌을 때 처음 이익이 나는 물건 판매 갯수를 구하는게 해당 문제입니다. 물건 판매갯수를 n이라고 가정하였을 때 결국 A + B * n < C * n 을 처음으로 만족하는 n을 구하면 되죠 ..라고 생각하고 n을 하나씩 증가시키면서 while로 문제를 푸신다면 틀렸습니다! 왜냐면 실행시간이 0.35초이기 때문이죠. 문제에서 21억 이하의 자연수가 A,B,C의 입력값..

article thumbnail
[C] 백준 1316번 write-up
algorithm/baekjoon 2023. 1. 2. 18:46

백준 1316번 그룹 단어 체커 문제입니다. 보통 문제 설명이 짧으면 어려운 문제가 대다수인데요 설명 5줄 문제 치고는 상당히 재밌었습니다. 늘 그렇듯이 문제를 풀기 전, 문제 해석을 해보도록 할게요. 1. 입력받은 문자열 중, 연속하지 않은 문자가 나온다면 해당 문자열은 그룹단어가 아니다. 라는 핵심 키워드가 있네요. 2. 1번의 연장선으로, 나오는 문자가 이전에 나왔었던 문자라면 해당 문자열이 그룹단어가 아니다 라는 뜻이 되겠네요 그렇다면 어떻게 로직을 짜야할까요? 여러분도 아시겠지만 C언어는 X세대 언어라 MZ감성을 따라오지 못합니다. 그래서 간단한 문자열 처리도 배열로 해서~~ 손만 아프네요 2번 로직을 보시면 나오는 문자가 이전에 나왔었던 문자라고 했는데, 입력받은 문자열을 전수조사하면서, 해당..

article thumbnail
[C] 백준/2941번 write-up
algorithm/baekjoon 2023. 1. 2. 18:09

사실 브론즈 문제들도 write-up 작성을 하고싶지만, 개인적으로 난이도가 너무 낮아 의미가 없을 것 같아서 실버 이상으로 풀이만 하고있습니다. 풀이할 문제는 2018년도 월드컵 준우승을 한 크로아티아 알파벳을 구하는 문제입니다. 간단한 문자처리만 하는 문제입니다. 문제 풀기 전에 잠깐 로직을 구상해볼까요? 1. 주어지는 문자열은 100글자의 소문자 알파벳과 =, -으로만 주어진다는 점으로 미루어보아, 간단한 문자열 처리도 하기 힘든(?) 우리의 C언어님은 입력받은 문자열을 일일이 전수조사를 해야될 것 같습니다. 2. 그렇다면 과연 입력받은 문자열에 변환을 해주어야할 크로아티아 문자가 몇개나 있을까요? 답은 '알 수 없다' 입니다. 그런 관계로, 크로아티아 문자열 한 개를 찾을때 마다 문자열을 전수조사..