C++

    [백준] 2014번 - 소수의 곱

    ☞ 이 문제에서 가장 중요하게 생각 할 점은 배열에 저장되어 있는 소수들을 어떤 방식으로 곱해야 최대한 순서대로 저장시킬 수 있도록 해줘야 합니다. 그냥 순서대로 처음에 한개씩 다음에 2,2 2,3 2,4 2,5와 같이 2개씩 계산을 해서 우선순위 큐에 저장시켜주면 나중에는 같은 수로 곱하여도 차이가 많이 나기 때문입니다.(예를 들어 2*2*2 와 7*7*7의 차이가 어마어마하다.) 따라서 여기서 우선순위 큐를 이용해 앞에 있는 수와 배열에 저장되어 있는 수들을 곱해 우선순위 큐에 저장시킨 후 다시 앞에 있는 수와 배열에 저장되어 있는 수들을 곱하는 방법을 반복한 후 N-1번째까지 반복 한 후 맨 앞에 있는 수가 정답이라는 것을 알 수 있었습니다. 여기서 2*2 를 하고 2*3 2*5를 가는 것보다 맨 ..

    [c++] 입력은 여러 개의 테스트 케이스로 이루어져 있다.

    문제의 조건에 이런 까다로운 것이 있을 때, c++에서는 어떻게 해결하면 될까? ● 보통 c++을 사용하는 개발자들이라면 scanf 대신 cin을 많이 사용 할 것이다. cin에는 EOF라는 모듈이 있는데, eof 기능을 사용하면 쉽게 해결된다. int a, b; while (true) { cin >> a; if (cin.eof() == true) { break; } //여기에 결과 값 입력! } 여기서 주목해야할 점은 cin.eof인데 ctrl+x를 입력할 때 프로그램에 끝냄 명령을 주는데, 이때 cin에 입력받은 값이 없을 때 신호를 주면, cin.eof는 true값을 반환을 하여 while문을 빠져나오게 된다. 따라서, 쉽게 저 조건을 해결 할 수 있게된다. 궁금하신 것이 있으시다면 언제든지 댓글로..

    [백준] 1012번 유기농 배추

    유기농 배추에 배추흰지렁이의 마리 수를 구하는 문제이다. 이 문제를 풀기위해서 완전탐색을 이용했는데, 먼저 ground 2차원 배열을 생성해서 배추의 위치를 1로 표현을 해주었다. 그 다음으로 groundN 함수를 사용해 groundN함수를 호출 했을 때 ground[x][y]의 위치가 1이면 배추가 있는 곳이므로 다시 탐색을 시도했을 때 탐색을 하지 않게 하기위해 1에서 0으로 바꿔주었다. 또한 이어져있는 배추를 확인하기 위해 [0,1] [1,0] [-1,0] [0,-1]. 동서남북으로 다시 탐색을 해줘, 그곳에도 배추가 있으면 또 탐색을 못하도록 1에서 0으로 값을 계속 바꾸어주었다. 이렇게 하면 나중에 ground배열에서 배추가 있는 위치를 찾을 때 또 다시 찾을 수 없도록 해줄 수 있기 때문이다...