12월, 2018의 게시물 표시

[백준] 11724번: 연결 요소의 개수

이미지
https://www.acmicpc.net/problem/11724 인접리스트로 그래프를 저장하고 dfs로 탐색했다. 체크배열에 아직 방문하지 않은 노드가 있으면 dfs를 하도록했고 dfs를 한 횟수가 연결 요소의 개수라고 할 수 있다. 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/11724.cpp

[백준] 10989번: 수 정렬하기 3

이미지
https://www.acmicpc.net/problem/10989 수의 개수의 범위가 10,000,000까지 이므로 단순히 배열에 저장하여 sort를 하게 되면 메모리 초과가 뜬다. 그래서 다른 방법으로 10,000보다 같거나 작은 자연수로 이루어져 있다는 조건에 따라 배열을 10,000만큼 할당해두고 해당하는 자리에 1씩 증가하였다. 그러면 저절로 인덱스를 따라 오름차순으로 정렬이 의도치않게 될것이고 출력도 인덱스를 출력하면된다. 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/10989.cpp

[백준] 11866번: 조세퍼스 문제0

이미지
https://www.acmicpc.net/problem/11866 둥글게 앉아있는 사람들을 일렬로 놓고 생각해보자. 예를들어 (7, 3) - 7명의 사람들을 3번째 마다 제거하는? 거라고 하면 1번째, 2번째는 큐의 맨뒤로 보내고 3번째 있는 사람을 pop하고 출력한다. 이를 큐가 비워질때까지 반복하면 된다. 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/11866.cpp

[백준] 1966번: 프린터 큐

이미지
https://www.acmicpc.net/problem/1966 pair로 인덱스와 우선순위 값을 묶어서 큐에 저장하고 priority queue에 우선순위 값들을 저장한다. 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/1966.cpp

[백준] 2504번: 괄호의 값

이미지
https://www.acmicpc.net/problem/2504 맨 처음엔 스택에 '(', '['도 넣고 계산한 값도 넣어서 top이 어떤 값이냐에 따라 처리하려고 했는데 char와 int간에 형변환이 너무 복잡하고 string은 더 복잡해서,, 하루종일 고생하다가 다른 방법으로 바꿨다. (나는 c++형변환에 약한것같다ㅠㅠ) string으로 입력을 받아 처음부터 순서대로 보는데 '('나 '['면 스택에 push하고 mul에 2나 3을 곱해주고 개수(k나 l)도 증가시켜준다. 만약에 다음꺼가 닫는괄호면 더하기 해준다. ')'나 ']'면 스택에서 pop해주고 mul에 2나 3을 나눠준다. 이때 k나 l이 0보다 큰값이 아니면 앞에서 짝이 안나왔다는 것이므로 0을 출력하고 바로 return해주었다. 마무리로 스택이 비어있지 않고 k나 l이 0이 아니면 올바르지 않은 괄호열을 의미하므로 0을 출력하게 하였다. 공부를 진짜 열심히 해야겠구나 느꼈던 문제였다... 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/2504.cpp

[백준] 1874번: 스택 수열

이미지
처음엔 문제를 이해하는 것도 힘들었다ㅠㅠ 1부터 n까지 수로 입력받는 수열을 만드는 것이다. (스택의 push, pop을 사용해서!) 나는 거꾸로 주어진 수열을 1부터 n까지의 수로 만들었다. 거꾸로 생각하는거니까 비디오 되감기하는 것처럼 생각해보면, 인덱스를 0부터 증가하면서 처리하는게 아니라 n부터 감소하면서 진행해야할 것이다. 하지만 나는 그렇게 하면 너무 복잡하다 생각해서 스택의 특성을 이용해서 주어진 수열을 거꾸로 뒤집었다. 다 push하고 다 pop했다. (이때 pop는 return형식이 void이므로 top으로 다시 배열에 저장한뒤 pop해주었다.) 아무튼 주어진 수열이 뒤집어진 형태의 배열을 가지고 처리를 시작한다.  원래는 1~n → 수열  인데 나는 뒤집어진 수열을 가지고 거꾸로 진행하는 거니까 생각해보면 뒤집어진 수열 → n~1 이렇게 된다. 일단 target을 n으로 저장해놓고 뒤집어진 수열이 저장되어있는 배열을 인덱스 0부터 차례대로 스택에 push한다. push하고 스택에 있는 top이 target과 같으면 pop하도록 했다. 이런식으로 하면 n~1의 순서로 pop이 된다. 위와 같은 처리 과정에서 push할땐 문제와 반대로 '-'를, pop할땐 '+'를 ans라는 스택에 순서대로 쌓아주었다. 이것마저도 스택에 쌓는 이유는 이것도 거꾸로 나오기 때문에 나중에 뒤집어주기 위해서다. 잘 진행이 되서 n~1이 잘 되면 스택은 비어있을 것이고 만들어지지 않는다면 스택은 비어있지 않을 것이다. 그래서 스택에 뭐가 남아있으면 만들어지지 않았다는 얘기니까 NO를 출력하고 return했다. 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/1874.cpp

[백준] 10039번: 평균 점수

이미지
문제에서 40점이하는 무조건 보충수업을 듣는다는 조건으로 40점을 준다고 되어있으므로 입력을 받을때 40점이하는 40점으로 입력한다. 학생들의 평균을 구해야하기 때문에 입력을 받으면서 각 점수들을 더하고 마지막에 다 더한 점수들을 5로 나누면 된다. 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/10039.cpp

[백준] 2920번: 음계

이미지
입력을 1차원 배열에 저장해놓고 0부터 7까지 반복문을 돌면서 해당 자리가 인덱스+1과 같으면 asc를 1씩 증가시키고 해당 자리가 8-인덱스와 같으면 des를 1씩 증가시키고 둘 다 아니면 mix를 1씩 증가시켰다. 그 후 asc가 8이면 ascending을 출력시키고 마찬가지로 des가 8이면 descending을 출력시키고 이 둘 다 아니면 mixed를 출력시켰다. (이렇게 설명을 쓰고보니 굳이 mix를 1씩 증가하지 않아도 될것같다) + 이렇게 하기 전에 string으로 바로 ascending, descending, mixed를 대입시키는 방법을 사용해서 '틀렸습니다'가 떴었다. 하나의 변수에 세가지 상태를 표현하려다 보니 틀린것같다. 더 공부해야겠다..... 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/2920.cpp

[백준] 8958번: OX퀴즈

이미지
입력을 string으로 받고 O가 나오면 cnt를 1씩 증가하고 sum에 더해준다. X가 나오면 cnt를 0으로 초기화한다. 코드↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/8958.cpp

[백준] 2577번: 숫자의 개수

이미지
입력받은 값을 곱한뒤 문자열로 변환해준다. 개수를 저장할 d[ ]를 0으로 초기화해주고 변환한 문자열의 사이즈만큼 반복하는데 해당 숫자 자리를 찾아 d배열에 하나씩 증가해준다. for(int i=0; i<s.size(); i++) d[s[i]-'0'] += 1; 이런식으로! 코드↓ https://github.com/ziwonii24/Algorithm/tree/master/Baekjoon

[백준] 1152번: 단어의 개수

이미지
getline으로 string을 입력받고 공백이 있으면 cnt를 증가시켰다. 그러나 문자열의 앞과 뒤에 공백이 있을 수 있다하였으므로 이때에는 cnt를 감소시켰다. 출력할때에는 공백의 개수 + 1을 하였다. 코드 ↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/1152.cpp

[백준] 1065번: 한수

이미지
1~99까지는 등차수열이기 때문에 개수를 1씩 증가해주고 100~1000은 자리수 별로 비교하여 증가하여야 한다. 먼저, string으로 변환하여 미리 diff에 맨앞 두 자리수의 차이(sn[1]-sn[0])를 구해놓은다음, 그 다음 자리수의 차이(sn[i+1]-sn[i])가 diff와 같으면 cnt를 증가시켜주었다. 1000을 입력했을 때 답은 144가 나와야한다. 코드 ↓ https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/1065.cpp

Visual Studio 콘솔 창 안나올때

이미지
빈프로젝트 만들고 run 했는데 콘솔창이 뜨지 않고 떴다가 바로 사라지는 것 같으면 "프로젝트->프로젝트 속성->링커->시스템"으로 들어가서 하위 시스템을 콘솔로 바꿔주면 된다

hello world!

"HELLO WORLD" 블로그 시작 ๑•̀ㅂ•́)و✧