알고리즘
C++ fill 이용한 배열 초기화 1차원 배열 2차원 배열
여태까지 구글링을 통해 얻은 정보인, fill 이용한 배열 초기화를 다음과 같은 방식으로 했다. fill(&check[0], &check[1001] + 1, 0); fill에서 오류가 난줄 모르고 BFS,DFS 알고리즘에 애러가 있는줄알고 해매었다. //https://www.acmicpc.net/problem/14889 #include #include #include #include using namespace std; int n, m, v; int check[1001]; vector graph[1001]; void dfs(int x) { check[x] = 1; cout v; for (int i = 0; i > u >> v; graph[u].push_ba..
C++ 배열 인덱스 1부터 사용 하기 - 백준 알고리즘 오답노트 2011
https://www.acmicpc.net/problem/2011 2011번: 암호코드 문제 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는거야. 선영: 그럼 안돼. 만약, "BEAN"을 암호화하면 25114가 나오는데, 이걸 다시 글자로 바꾸는 방법은 여러 가지가 있어. 상근: 그렇네. 25114를 다시 영어로 바꾸면, "BEAAD", "YAAD", " www.acmicpc.net #C++ 배열 인덱스 1부터 사용 하기 #1.. 문자열 인덱스와 dp의 인덱스의 괴리감에서 나오는 괴상현상... 구지 배열의 인덱스를 0..
C++ 소수점 반올림 안됨. fixed가 고장났을때 - 백준 알고리즘 오답노트 2755
https://www.acmicpc.net/problem/2755 2755번: 이번학기 평점은 몇점? 첫째 줄에, 백준이가 이번 학기에 들은 과목 수가 주어진다. 둘째 줄부터 N개의 줄에 각 과목의 과목명, 학점, 성적이 주어진다. 과목명은 알파벳 소문자와 숫자, 그리고 밑줄 (_)로만 이루어져 있으며, 최대 100글자이고, 학점은 1보다 크거나 같고, 3보다 작거나 같은 자연수이다. 성적은 문제에 설명한 13가지 중 하나이다. www.acmicpc.net #C++ 소수점 반올림 안됨. fixed가 고장났을때 #1. 다음의 결과를 예측해 보자. cout
구름IDE 디버깅 하는 방법 - 백준 알고리즘 오답노트 1913
https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 출력한다. www.acmicpc.net #구름IDE에서 디버깅 하는 방법 IDE 환경에서 처음 디버깅을 배운건 VS 사용했을때 중단점 설정 후 코드를 한줄 한줄 실행 시키는 것. 함수를 들어갈지 말지도 선택하면서 코드 한줄한줄 읽었던것 같다. 그리고 변수의 메모리 주소를 알아내어 실시간 RAM의 상태를 보면서 들어가 있는 변수들을 보았다. 이후 구름IDE 로 옮기면서 디버깅 기능을 사용 안하고 그냥 확신이 부족한 부분에서 출력..
알고리즘 고수의 코드를 보다. - 백준 알고리즘 오답노트 5073
https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변 문제 삼각형의 세 변의 길이가 주어질 때 변의 길이에 따라 다음과 같이 정의한다. Equilateral : 세 변의 길이가 모두 같은 경우 Isosceles : 두 변의 길이만 같은 경우 Scalene : 세 변의 길이가 모두 다른 경우 단 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우에는 "Invalid" 를 출력한다. 예를 들어 6, 3, 2가 이 경우에 해당한다. 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형 www.acmicpc.net #1. 준비된 사람의 알고리즘 문제 풀이 //5073 #include #include #include using namespace ..
다이나믹 프로그래밍 오버플로어 - 백준 알고리즘 오답노트 1012
https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되 www.acmicpc.net #1. 문제 조건에서 n의 최대범위는 반드시 체크를 해야된다. N값의 최대값 ( N = 90)을 넣으니까 답을 메모리 제이션 하는 int자..
배열 초기화 방법 fill vs memset - 백준 알고리즘 오답노트 1260
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net 배열 초기화 방법 fill vs memset - 백준 알고리즘 오답노트 1260 #1. 문제를 잘 읽어보면 정점의 번호가 작은것 부터 탐색을 해야됨. 근대 백터에 u,v 입력때 정점의 번호는 랜덤이다. 그래서 정렬을 해줘야 된다. 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결..
C 숫자 각 자리수 분해. 이,일의 자리수 분해 - 백준 알고리즘 오답노트 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 숫자 각 자리수 분해. 이,일의 자리수 분해 - 백준 알고리즘 오답노트 1110 #1. 2자리 3자리 정도는 / 과 %을 이용..