알고리즘 문제풀이/백준
-
[백준/BOJ] 1543번 문서 검색 (C++)알고리즘 문제풀이/백준 2021. 10. 27. 14:40
https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 간단한 문자열 탐색 문제였다. 풀이를 설명할 필요없이 코드를 보면 이해가 갈 것이다. #include #include using namespace std; int main(void) { freopen("input.txt", "rt", stdin); ios_base::sync_with_stdio(false); cin.tie(0); string str, word; getline(cin, str); getl..
-
[백준/BOJ] 2146번 다리 만들기 (C++)알고리즘 문제풀이/백준 2021. 10. 26. 16:06
www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 구현 부분에서 조금 애먹었지만 풀이 로직은 정확하게 맞은 문제 1년 후에 다시 풀었더니 한번에 맞췄다. ㅎㅎ BFS를 두번 사용해야하는데, 첫번째 BFS는 각 섬의 영역에 번호를 매기기 위해 사용하고, 두번째 BFS는 각 섬에서 다른 섬까지의 최소 거리를 구하는데 사용해서 문제를 해결했다. #include #include #include #include #include #include using namespace s..
-
[백준/BOJ] 2468번 안전 영역 (C++)알고리즘 문제풀이/백준 2021. 10. 13. 17:16
https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net BFS 문제, map의 값이 전부 1일 때 답이 1이 나와야 하는데, 이를 주의해야 한다. (비가 안오는 경우도 있으므로) #include #include #include #include using namespace std; int n, answer; int map[101][101]; int dx[4] = {-1, 0, 1, 0}; int dy[4] = {0, -1, 0, 1}; bool visit[10..
-
[백준/BOJ] 16506번 CPU (C++)알고리즘 문제풀이/백준 2021. 10. 10. 18:58
https://www.acmicpc.net/problem/16506 16506번: CPU 디지털하드웨어설계 과목의 최종 프로젝트는 16-bit CPU를 설계하고 Verilog 언어로 구현하는 것이다. 본인이 구현한 CPU가 제대로 동작하는지 테스트하기 위해서는 기계어 코드를 입력으로 주어야 www.acmicpc.net 다시 풀기 : 제한시간 20분 빡구현 문제이다. 12~15번 비트 조건 처리를 하는데 조금 애먹었다. 문제 해결 방법 자체는 어렵지 않다. opcode에 해당하는 비트와 4, 5번 비트를 map을 선언해 미리 이진수 값을 넣어줬다. 나머지 입력값을 이진수로 바꿔서 더해주고, 12~15번 비트 처리일 때 4번 비트가 1이면 4개의 비트가 필요하므로, 이에 대한 처리를 따로 진행해줬다. (이때..
-
[백준/BOJ] 3568번 iSharp (C++)알고리즘 문제풀이/백준 2021. 10. 10. 17:20
https://www.acmicpc.net/problem/3568 3568번: iSharp 입력으로 주어진 변수 선언문을 문제의 조건에 맞게 변형한 뒤, 한 줄에 하나씩 출력한다. 변수형과 변수명 사이에는 공백이 하나 있어야 한다. 출력은 입력으로 주어진 변수 선언문에서 변수가 www.acmicpc.net 구현 자체는 어렵지 않은데 고려해야 할 사항이 많아서 까다롭다. 첫 번째로 변수 오른쪽 옆에 붙은 &, *, []을 왼쪽으로 역순으로 옮길 때, []은 모양이 유지 되어야 한다. 두 번째는 변수명이 두 글자 이상일 수 있다. 예를들어 aa, AbCdE 등이 될 수 있다. #include #include #include using namespace std; int main(void) { //ios_bas..
-
[백준/BOJ] 2615번 오목 (C++)알고리즘 문제풀이/백준 2021. 10. 5. 17:58
https://www.acmicpc.net/problem/2615 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 그렇게 어렵지 않는 구현 문제였다. 주의할 점이 하나 있는데 오목인지 확인할 때, 다음과 같이 4방향으로 고려해야한다. 4방향인데, 각각 2번씩 탐색을 하는 것이다. 이렇게 해서 오목이 되는지 확인하면 된다. #include #include #include #include using namespace std; int map[20][20], win; int dx[2][4] = { {-1, -1, -..
-
[백준/BOJ] 1063번 킹 (C++)알고리즘 문제풀이/백준 2021. 10. 1. 16:55
https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 크게 어렵지 않은 구현 문제이다. 다만 주의할 점이 있는데, 첫 번째는 예를들어 좌표가 A1이면 해당 좌표는 맨 왼쪽 아래를 의미한다. 이를 90도 방향으로 회전하면 배열처럼 사용할 수 있는데, 이렇게 하면 킹이 움직이는 방향도 90도 방향으로 회전해서 생각해줘야 한다. 그리고 두 번째는 좌표가 문자로 되어있기 때문에 이동 처리를 할 때는 숫자로 바꿔주고 마지막에 출력할 때는 다시 문자로 바꿔줘야 한다. #..
-
[백준/BOJ] 8979번 올림픽 (C++)알고리즘 문제풀이/백준 2021. 9. 30. 01:22
https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 각각의 메달의 수가 같은 경우 등수 처리를 잘해줘야 하는 문제이다. 예를들어 입력이 다음과 같다면, 등수는 다음과 같이 된다. 4 3 1 1 2 0 -> 1 2 0 1 0 -> 2 3 0 1 0 -> 2 4 0 0 1 -> 4 나는 각각의 메달의 개수를 문자열로 변환하고, 이것을 map의 key로 사용하였다. 해당 문자열을 key로 했을 때 value가 0이라면 유일한 순위이..