Algorithm/boj

    백준 1110

    https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net #include #include #include using namespace std; int n; int main() { cin >> n; if (n < 10) n = n * 10; int a; a = n; //초기값 int cnt = 0; int temp = -99; while (true) { //int temp; if (temp == a)//초기값과 같으면 사이클출력. { cout

    백준 3040

    https://www.acmicpc.net/problem/3040 3040번: 백설 공주와 일곱 난쟁이 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. www.acmicpc.net #include #include #include using namespace std; vector v,a; int main() { //v = { 1,2,3 }; a = { 0,0,1,1,1,1,1,1,1 };//9개 중 7개 뽑을거임(값을 1로) for (int i = 0; i > temp; v.push_back(temp); }//입력끝 s..

    백준 1966 프린터 큐

    #include #include using namespace std; int main() { int t,n, m; cin >> t; for (int test = 0; test 최대값뽑기 cin >> n >> m; for (int index = 0; index > important; q.push({ index,important }); pq.push(important); } //입력끝 int cnt = 0;//인쇄된 갯수저장 while (!q.empty()) { int i, imp; i = q.front().first;/..

    백준 17144 미세먼지 안녕!

    https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net * 확산 1.확산배열 => 확산값만 따로 누적 저장 2. 먼지가있는칸은 따로 갱신 3.기존맵+확산배열 더해주기 for(모든칸에 대해) if(숫자)->list.add(좌표) for(list) 4방탐색 범위안and -1(공기청정기)이 아니면 -> 확산배열갱신 endfor 먼지있던칸 값 갱신 맵+확산맵 더해주기. *airClean 1.배열돌면서 큐에 배열값하니씩 넣기 2. 배열돌면서 큐에서빼서 1개씩..

    백준 10971 외판원 순회2

    https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main_10971_유동훈 { static int n; static boolean[] visited; s..

    백준 10026 적록색약

    백준 10026 적록색약

    https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 1. map2개 생성 => 하나는일반인용 입력그대로 받음 색맹용은 기존것 복사 and G이면 R로 바꿔주기 2.모든 미방문노드에 대해 bfs 호출 3. bfs 3-1.4방탐색 3-2.범위안 and 미방문이면 3-3 부모하고같은색이면 -> 큐에추가(트리확장), 방문처리 3-4. 큐가비었다==가능한것 모두 방문완료->구역생성됨.->answer++ import java.io.BufferedRea..

    백준 3055 탈출

    백준 3055 탈출

    https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 0. 큐::x,y,경과시간 1. '*'들의 좌표를 qWater에 넣기 2. 'S'의 좌표를 qGo에 넣기 3. D의 좌표를 target에 저장 // 입력끝 4.bfs 4-0: 물큐를 먼저 실행 & 고슴도치를 나중에 이동 => 물이갈 예정인곳은 못간다 구현. 4-1:물큐가 안빔 or 고슴도치큐가 안비면 무한반복 (물큐가 먼저 빈경우에도 qSize만큼 돔 => 자동스킵됨) 4-2:물: 상하좌우탐색, 빈땅(.) a..

    백준 7576 토마토 //bfs 레벨(깊이) 구별하는법

    https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 1. 입력받다가 토마토(1)들이 있으면 좌표를 큐에 넣기 => 초기 트리 생성됨.(level 0) ※ bfs 레벨 구별법 1.초기값 qSize저장 2.qSize만큼 탐색하기 ex) Q : 2,1 -> 이면 2회만큼 돌고 2,1은 팝되고 그 이후 level이 ++됨. int level=0; while(!q.isEmpty()) { //이렇게 해야 레벨(깊이)별로 구별 가능!!!! in..