본문 바로가기
반응형

전체 글56

[c언어 알고리즘] 백준 별찍기3 (2440번) 해설 지난 시간에 이어 오늘은 별찍기 3으로 명명 되어있는 문제를 같이 알아보겠습니다. 바로 위에있는 그림과 같은 모양의 ' * '모양을 출력하는 것입니다. 이번 문제도 2중 for문으로 해결할 수 있습니다. 역시나 2중 for문의 중요한 점은 아래와 같습니다. 1. 변수 i, j(다른 변수 사용하셔도 됩니다!)가 의미하는 것과 범위 2. i와 j의 관계를 파악하여 활용하기. 아래 글을 한번 읽어 보시면 더욱 도움이 됩니다. 2023.01.04 - [분류 전체보기] - [c언어] 2중 for문 [c언어] 2중 for문 앞서 for문의 사용이유와 방법에 대해서 알아보았다. for문을 중첩으로 사용하면 더욱 많은 일을 컴퓨터에게 시킬 수 있다. 실생활 예를 들어보면 "시리야!, 매달 일요일 4시에 알람 맞춰줘!".. 2023. 1. 6.
[c 알고리즘] 백준 7576 토마토 문제 해설 (문제의 서술은 생략하겠습니다.) 이 문제에서 요구하는 토마토가 모두 익으려면 얼마나 걸리는지 그 최소 일수를 알고 싶어한다. 확산을 하며 조건을 만족하기 위한 최소값을 구하라?? 이게 바로 BSF로 해결하면 되는 문제입니다. 근데, 이번에는 시작점과 끝점을 정해준 것이 아니며, 심지어 시작 위치는 동시에 여러 곳 일 수 있습니다. 그렇다면 이 문제를 어떻게 해결하면 좋을까요? BSF와 짝궁으로 같이 다니는 큐를 활용하면 됩니다. 큐는 FIFO(First In First Out)구조이기 때문에 원하는 값을 넣어준 순서대로 다시 빼와서 활용하기에 적합합니다. 따라서 서로 다른 시작위치를 큐에 push 해 두었다가 pop으로 꺼내서 다음 위치로 이동시키면 됩니다. 이제 BSF를 활용한 방법을 같이 확인해보겠.. 2023. 1. 5.
[c언어] 이진탐색이란? 어쩌면 알고리즘 문제는 시간 복잡도와의 싸움일 수 있겠다 싶을정도로 많은 제약이 있다. 그냥 사고의 흐름대로 for문을 중첩으로 사용하여 문제를 해결하면 참 좋겠지만... 많은 문제들이 입력 data를 10만개에 육박하게 주는 경우가 많다. 이럴 경우 우리는 어떤 방법을 통해 문제를 해결해야할까? 그 답중에 하나가 이진탐색이 될 수 있다. 사실 우리는 Up & Down 게임을 통해서 이미 이진탐색을 경험했고 아주 잘 사용하고 있다. 실생활 예를 들어보면, 1 부터 10까지의 숫자 중에 하나를 골라 본인만 알고 있자. 그랬을 때 10번 만에 그 숫자를 맞춰 보려한다면, 우리는 본능적으로 첫 정답을 5이라고 말할 것이다. (여기서, 정답을 알고 있는 사람이 Up 또는 Down을 알려주면 범위는 2배정도 줄어.. 2023. 1. 4.
[c언어] 배열을 정수로 변환하기 Data를 다루려면 배열에 담아서 관리를 해야한다. 배열에 값을 담으면 배열의 주소를 알게 되어 원하는 값에 쉽게 도달이 가능한 장점도 있다. 그리고 사실 c언어에서는 배열에 담지 않으면 어떤 Data든 다룰 수 없는 구조이다. 하지만 이렇게 배열에 담아서 관리를 하면 단점이 있는데 그 중 사람이 인식하는 방법과 다르다는 단점이 있다. 위와 같이 사람은 배열의 순서대로 값이 적혀있기 때문에, 저 숫자들을 그대로 읽어 하나의 정수로 인식하고 싶어한다. 하지만 배열은 각 방으로 나누어져 있기 때문에 컴퓨터는 배열의 값을 그대로 정수로 받아들이지 못한다. 그렇다면 어떻게 각 방에 나눠 담겨있는 값을 하나의 정수로 만들 수 있을까? 다음 방법은 알아 두면 정말 유용하게 사용 된다. (이런 아이디어는 누가 내는지.. 2023. 1. 4.
반응형