알고리즘
-
14502.연구소알고리즘/백준 BAEK JOON 2020. 5. 25. 07:09
이번 문제는 연구소이다. 꽤 많이 중요한 내용을 배우고 상기할 수 있는 문제였다. 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net 이 문제를 푸는데 핵심은 맵을 복사해서 사용한다는 것과 나머지는 탐색이다. 난이도는 어려운 수준이 아닌 거 같지만 초보자에게 연습하기는 좋은 문제인 것 같다( 난 초보자 ㅠㅠ.. 너무좋네...) 재귀함수 관련된 문제를 조금 더 풀어봐야할 것 같다. * 문제풀면서 중요한점 1. 문자, 특수기호 실수 => 실수로 자꾸 if문 다음에 변수에 값을 대입할 때 "=" 대신 "=="를 사용하여 틀림 주의..
-
Visual Studio 디버깅 시, 입력 붙여넣기 안 될때!알고리즘/알고리즘 개념 및 정리 2020. 5. 22. 22:59
과거에는 보통 코딩을 리눅스에서 하며 Qt를 애용했는데 요즘 Visual Studio를 자주 사용하고 있다. 사용하면서 가장 불편했던 것은 디버깅모드에서 입력 값이 붙여넣기가 안된다는 것이다..(내가 못하는건가..?) Qt Creator는 잘만되던데.. ( Qt Creator 짱짱.. ) => 여튼 그래서 다른 방법을 사용해야 편하게 코딩을 즐길 수 있다! 여튼 이런경우에는 아래의 freopen함수 한 줄만 추가해주면 간단하게 디버깅 시에 입력을 할 수 있다. freopen("input.txt", "r", stdin); input.txt 파일의 경로는 그냥 리소스파일에 추가하면 굳이 경로 안찾아도된다. 그리고 이처럼 진행할 시에 위와 같은 보안 관련 error 메시지를 볼 수 있다. #pragma war..
-
2667.단지번호붙이기알고리즘/백준 BAEK JOON 2020. 5. 21. 23:40
이번에 풀어볼 문제는 단지번호붙이기이다. 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. � www.acmicpc.net 생각보다 이상한곳에 막혀서 시간낭비를 했다. 시간은 1시간 30분정도 걸렸고 목표한 시간보다 30분이나 초과되었다. 사실 30분컷 낼 수 있었는데 이걸 코드하나를 잘못집어넣어서 하루종일 걸렸다.. 후... DFS를 이용해서 풀었고 이 문제의 포인트는 Stack를 이용하되 Stack에 자신이 이동한 부분의 좌표를 넣어주는 것이다. 그래야지 DFS로 쭈욱 탐색하다가 막혔을 때 다시 돌아가서 탐색하지 않은 방향으로 탐색을 진행..
-
15649 ~ 15652.N과 M(1~4)알고리즘/백준 BAEK JOON 2020. 5. 20. 02:05
이번에 풀어볼 문제는 순열과 조합 및 재귀함수와 관련된 문제이다. 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구..
-
1541.잃어버린 괄호알고리즘/백준 BAEK JOON 2020. 5. 18. 23:48
이번에 풀어볼 문제는 잃어버린 괄호이다! 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 나름대로 규칙성을 찾아서 문제푸는것을 시도했기에 시행착오도 생각보다 적었고 내가 원하는 시간내에 푸는 것에 성공했다. 백준의 분류 중 그리디 알고리즘 Part를 풀고있는데 정답률에 비해 난이도가 어렵게 느껴진다.. 기분탓인가...? 이 문제는 두 가지 해결점이 필요한다. 첫 번째는 바로 문자열에서 숫자와 괄호를 구별해 내는 로직이 필요하다. 이 점은 그냥 간단한 로직으로 해결했다. '+' 나 '-' 가 아니면 n이라..
-
2529.부등호알고리즘/백준 BAEK JOON 2020. 5. 18. 01:20
(*)이번에 풀어볼 문제는 백준의 2529번 부등호이다. 꽤 오랜시간이 걸린 문제이다..ㅠㅠ 역시나 풀이 전 침착하게 분석으로 규칙을 찾아야한다.. 분석을 조지거나 안하고 구현을 시작하면 예외처리를 빼먹을 시, 다시 구현해도 시작이 부족할 것이다.. -> 조짐의 지름길.. 2529번: 부등호 두 종류의 부등호 기호 ‘’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제�� www.acmicpc.net 문제의 내용은 간단하다. k개의 부등호를 입력받아 부등호에 맞게 0~9까지의 숫자로 만들 수 있는 최소값과 최대값을 구하는 것이다. 생각보다문제가 어려웠다.. 규칙을 발견했는데 조금 침착하게 구현할 필요..
-
1138.한 줄로 서기알고리즘/백준 BAEK JOON 2020. 5. 17. 15:37
(*)이번 문제는 너무 어렵게 풀어서 다른사람의 코드를 참고해서 글을 쓴다. 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 � www.acmicpc.net 참고:https://jaimemin.tistory.com/757 #include #define MAX 10 using namespace std; int arr[MAX]; int main(){ int n; cin >> n; for (int i = 0; i > pos; f..
-
1120.문자열알고리즘/백준 BAEK JOON 2020. 5. 17. 15:14
(*)이번에 풀어볼 문제는 백준의 1120번 문자열이다. A문자열은 B의 문자열보다 짧고 A문자열에는 문자열 앞과 뒤에 문자를 추가하는 두 가지 연산이 가능하다 이러한 연산은 B와 길이가 같아질 때까지 가능하고 추가해서 길이를 같게만든 문자열 A와 B의 차이를 최소화 시킬 수 있는 차이를 구하면된다. 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 � www.acmicpc.net 이 문제에는 함정이 있다. 곰곰히 생각해보면 피할 수 있다. -> 이래서 문제풀기전에 생각하는 시간이 가장 중요하다. 문..