'SW 업무 관련/백준' 카테고리의 글 목록 (5 Page)

SW 업무 관련/백준 69

[BAEKJOON] 2606_바이러스

오랜만에 다시 알고리즘 문제를 풀기 시작! 백준의 1260번 DFS와 BFS, 7576번 토마토에 이어 3번째 문제이다.전부 예전에 풀었던 문제들이나 오랜만에 시작하는거니까 다시 풀어보았다!!! 나름 열심히 공부 했었는데...9개월 만에 시작하려니 가물가물하다. 그러나!! 최근 어쩔수없는 상황속에서 다른 사람의 코드를 이해하던 말던 오랜시간 쳐다보고 있으니...코딩에 관한 실력은 약간 늘은 것 같은 기분...??이다. https://www.acmicpc.net/problem/2606 풀이 예전에는 DFS로만 풀었으나, 이번에는 BFS로도 풀어보았다. 방법은 여러개가 있겠으나, 나는 DFS와 BFS로 문제를 풀기 위해 '인접배열'을 사용하였다. 두 컴퓨터가 서로 연결되어 있다는 것을 표시하기 위해서이다. ..

[BEAKJOON] 풀었던 문제들 복습 - 1편(1000번,1001번,1003번,1008번,1057번)

문제들 출처 : https://www.acmicpc.net/ 1. https://www.acmicpc.net/problem/1000 - 1000번 A+B 풀이 - 생략 제출코드123456789#include int main(){ int a, b; scanf("%d%d",&a,&b); printf("%d",a+b); return 0;}cs ------------------------------------------------------------------------------------------ 2. https://www.acmicpc.net/problem/1001 -> 1001번 A - B 풀이 - 생략 제출코드123456789#include int main(){ int a, b; scanf("%d%..

[BEAKJOON] 2456_나는 학급회장이다_C언어

https://www.acmicpc.net/problem/2456 풀이 최근에 푼 문제들 중에 제일 어려웠던 문제....쉽운 문제라고해서 덤빈건데 시간도 오래걸리고 많이 틀렷다. 계속 100%에서 틀렷다고해서ㅜ,ㅠ 1. 세 명에 대한 total 값을 저장할 배열과 점수별로 얻은 것을 count하는 2개의 배열을 선언.입력을 받으면서 total엔 입력된 값을 +해주고, count배열에는 +1씩 해준다.1234567891011void input(){ scanf("%d", &num); while (num--) { int a, b, c; scanf("%d %d %d", &a, &b, &c); total[0] += a; total[1] += b; total[2] += c; count[0][a - 1]++; cou..

[BEAKJOON] 2146_다리 만들기_C언어

https://www.acmicpc.net/problem/2146 풀이 1. 배열을 입력 받을 때 큐에 지도상에 1인 부분들을 저장한다.2. 다리를 놓을라고 탐색을 할 때 같은 섬에 연결하는 것을 방지하기 위하여 섬 마다 번호를 다르게 바꾸어준다.3. 배열을 입력 받을 때 사용한 큐로 BFS를 해준다. 이때 테두리만 탐색해주면 되기 때문에 섬의 테두리 마다 BFS를 해주어 가장 작은 값을 출력해준다. 풀이는...간단하다. 구현이 나한테는 길로 복잡해서 그렇지.. 제출한 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970..

[BEAKJOON] 11559_puyo puyo(뿌요뿌요)_C언어

https://www.acmicpc.net/problem/11559 풀이 1. 같은 문자가 4개 이상으로 뭉쳐져 있는 곳들을 BFS를 통해 찾아 없앤다.없을경우 탐색을 종료.-> 처음에 DFS로 찾았는데 ㅗ 모양은 제거 못 하더라..ㅎㅎ생각해보면 당연함. 내가 잘못 생각하는 것 일수도 있고. 2. 연쇄 ++; 3. 중력으로 문자들이 아래로 떨어진다~~~ 4. 1로 다시 돌아간다. 여기서 중요한건!!!!!!!!!!!!!!!!중력으로 문자들이 떨어질 때 문자들을 없애는 동작이 1회라는 거나..나는 예로 4개 이상의 R을 없애고 +1, Y를 없애고 +1을 하였는데,이렇게 하는게 아니라 R, Y를 모두 없앤 후 +1이다. 제출한 코드(코드상에 약간 이상한 부분이 있으나..왜 그런지 몰라 고민중이다. 그래도 정답..

[BEAKJOON] 4948_베르트랑 공준_C언어

https://www.acmicpc.net/problem/4948 풀이 에라토스테네스의 체를 이용하여 소수들을 모두 구한 후, n+1이상 2n이하의 소수의 개수를 출력하면 되는 문제. 에라토스테네스의 체는 간단히 설명하면 2를 제외한 2의 배수들을 전부 소수에서 제외, 3을 제외한 3의 배수들을 소수에서 제외 하는 방식으로 2부터 숫자를 증가하면서 소수를 구해나간다. 제출한 코드12345678910111213141516171819202122232425#include int arr[246913];int main() { arr[1] = arr[0] = 1; for (int i = 2; i

[BEAKJOON] 1063_킹_C언어

https://www.acmicpc.net/problem/1063 풀이입력된 명령어에 따라 킹과 돌을 움직여주면 되는 문제이다. 1. 입력된 킹과 돌의 위치를 8by8 맵에 대응시킨다.2. 입력된 명령들을 하나씩 실행해준다.ㄱ. 킹을 움직이기 전 킹의 다음 위치에 돌이 있거나 범위를 벗어나는지 판단한다. a. 범위를 벗어난 경우킹이 움직여야 될 다음 위치가 범위를 벗어나면 continue b. 돌이 있을 경우돌이 있으면 돌도 같은 방향으로 옮겨주어야 한다. 돌도 움직여 주기 전 돌의 다음 위치가 map의 범위인지 판단해준다. 범위를 벗어나면 continue, 범위 안에 있으면 돌을 움직여 준다.ㄴ. 돌을 움직인 후 킹을 움직인다.3. 명령을 다 수행 후 킹과 돌의 위치를 맵의 좌표에 맞게 1번의 반대 과..

[BAEKJOON] 1932_숫자삼각형_C언어

https://www.acmicpc.net/problem/1932 풀이 우선 이 문제는 DP문제이다. 그냥 배열이 주어지고 특정 방향을 따라 최대 최소 경로의 수 를 구하는 문제들은 삘링이 그냥 DP같아서...별 생각없이 DP로 먼저 생각하게 된다. 이 정도 난이도의 DP문제는 다 비슷비슷한 거 같다. 최근에 풀었던 삼각 그래프나 기업투자와 유형과 접근이 비슷해 금방 풀었던 것 같다. 1. arr의 맨 아래 삼각형 밑 면까지 모든 경로를 탐색하며 내려간다.2. 밑 면에 도착하면 해당 밑면의 arr배열의 값을 return해준다.3. return된 값과 맨 밑면에 도달하기 전 위치의 arr값을 더해준 뒤 DP배열에 저장한다.4. 모든 밑면에 대하여 3번과 같은 단계를 거치며 return될 때마다 그 전에 D..

[BEAKJOON] 4963_섬의 개수_C언어

https://www.acmicpc.net/problem/4963 풀이 여행을 갔다 오느라..오랜만에 문제를 풀었다!!근데 이건...예전에 풀었던 '2667번단지번호붙이기'와 매우 흡사하여 금방 풀었다. map배열과 방문을 체크하는 visit배열을 선언 후이중 반복문으로 map배열을 다 체크해주며 map의 해당 값이 1이며 방문한 적이 없는 곳이면 이 곳을 기준으로 상하좌우 대각선을 탐색해준다. 더 이상 이어진 섬이 없으면 return 1을 해주어 이 1의 총 합을 출력해주기만 하면 된다. 제출 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#include ..