Baekjoon
![[1427] 소트인사이드](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4d8h7%2FbtqyfXERynl%2FrkttZs0xA8REssi9XaKvTk%2Fimg.png)
[1427] 소트인사이드
문제 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 💡 내 코드(C) // [1427] 소트인사이드 #include #include // strlen() #define MAX 100000 void bubble_sort(char *n); char n[MAX]; int main() { scanf("%s", n); // strlen() 사용하기 위해서 %s로 입력 bubble_sort(n); printf("%s", n); } void bubble_sort(char *n) // 내림차순 정렬 { int i, j; int len = strlen(n); char temp; for (i = 0; i < le..
[1406] 에디터(C++)
문제 1406번: 에디터 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 www.acmicpc.net 내 코드(C++) #include #include #include #include using namespace std; int main() { stack left, right; string s; cin..
![[1260] DFS와 BFS(C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUmZwZ%2FbtrSC8dJbYl%2FZo8Jx8NmN0vH5NiXwcMCOk%2Fimg.jpg)
[1260] DFS와 BFS(C++)
문제 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net 내 코드(C++) #include #include #include #include #define MAX 1001 using namespace std; bool visit[MAX]; vectorlist[MAX]; void dfs(int start); void bfs(int start); int main(void) { int N, M, V; cin ..
[1158] 요세푸스 문제(C)
문제 바로가기 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 출력 예제와 같이 요세푸스 순열을 출력한다. 내 코드(C) // [1158] 조세퍼스 문제 // 한..
![[1110] 더하기 사이클](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdXaoQW%2FbtqygsRS67A%2FpYd1gi5USayYGHxrGw7UHk%2Fimg.png)
[1110] 더하기 사이클
https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = www.acmicpc.net 💡 내 코드(C) /* 더하기 사이클 */ #include int main(void) { int n, n1, a, b, time =..
![[1100] 하얀 칸](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FueAyk%2Fbtqyh1r3sMm%2FVGUkYFPk1W8v7KJryQpfSK%2Fimg.png)
[1100] 하얀 칸
https://www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오. www.acmicpc.net 💡 내 코드(C) /*[1100] 하얀 칸*/ /*https://www.acmicpc.net/problem/1100*/ #include int main() { char state[8][8]; int count = 0; // 행 for (int i = 0; i < 8; i++) { gets(state[i]); } for (int i = 0; i < 8; i++) { // 각 행의 흰..
![[1697] 숨바꼭질(C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKhRHs%2FbtrSEgCkt7W%2FpUsp1St7YruddrbSbYDoQ0%2Fimg.jpg)
[1697] 숨바꼭질(C++)
문제 1697번: 숨바꼭질 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 www.acmicpc.net 해결 방법 살짝 까다로웠던 문제. 분명 트리로 푸는건 아닌 것 같은데 자꾸 트리만 생각나고 bfs로 어떻게 풀어야할지 감이 안잡혀서 결국 구글링을 했다. 알고리즘은 간단하다. 1. 수빈이의 위치(n)..
![[10026] 적록색약(C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbG2ru4%2FbtrSDKp8Kw6%2FmtkqfW4nng8jR5Z3QCavGk%2Fimg.png)
[10026] 적록색약(C++)
문제 10026번: 적록색약 문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속한다. (색상의 차이를 거의 느끼지 못하는 경우도 같은 www.acmicpc.net 해결 방법 한 번에 맞은 문제가 진짜 오랜만인 것 같다 ㅋㅋ 좀 더 빨리 풀 수 있었는데 visited[i][j]가 초기화가 제대로 되지 않았던 탓에 시간을 좀 끌었다. 분명히 구글링한 결과로는 이..