[백준 알고리즘] 9012번 : 괄호
2019. 7. 31. 23:45
알고리즘/BaekJoon
문제 9012번 : 괄호 9012번: 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc www.acmicpc.net 내가 작성한 코드 (C++ 성공) #include #include #include using namespace std; int main(){ int t; cin >> t; strin..
[백준 알고리즘] 1874번 : 스택 수열
2019. 7. 31. 23:35
알고리즘/BaekJoon
문제 1874번 : 스택 수열 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 내가 작성한 코드 (C++ 성공) #include #include using namespace std; int stack[100001]; char res[200001]; int main(){ int n; cin >> n; int top = 0, istack = 0, ires = 0; int num[n+1]; for(int i=0; i> num[i]; ..
[백준 알고리즘] 1920번 : 수 찾기
2019. 7. 31. 23:24
알고리즘/BaekJoon
문제 1920번 : 수 찾기 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수들의 범위는 int 로 한다. www.acmicpc.net 내가 작성한 코드 (C++ 성공) #include #include using namespace std; int main(){ cin.tie(NULL); int n, m; cin >> n; int a[n+1]; for(int i=0; i> a[i]; } sort(a, a+n); cin >> m; int input[m+1]; fo..
[백준 알고리즘] 17213번 : 과일 서리
2019. 7. 31. 23:13
알고리즘/BaekJoon
문제 17213번 : 과일 서리 17213번: 과일 서리 민건이네 과일 농장은 N가지 종류의 과일을 재배하는 중이다. 평소 민건이에게 앙심을 품고 있던 지환이는 민건이를 골탕 먹이기 위하여 민건이네 과일 농장에서 과일들을 훔치기로 다짐했다. 지환이는 완벽한 범죄를 위하여 처음 생각한 개수 만큼만 훔치려고 한다. 이때 지환이가 훔칠 수 있는 경우의 수가 몇가지나 될 지 알아보자. 단, 모든 종류의 과일을 적어도 1개는 훔친다. www.acmicpc.net 내가 작성한 코드 (C++ 성공) #include using namespace std; int sel[8]; int cnt; int n, m; int Comb(int index, int count){ if(count == m-n){ cnt++; retur..
[백준 알고리즘] 17362번 : 수학은 체육과목입니다 2
2019. 7. 31. 23:01
알고리즘/BaekJoon
문제 17362번 : 수학은 체육과목입니다 2 17362번: 수학은 체육과목 입니다 2 첫 번째 줄에 19번 문제 세 번째 줄에 등장하는 수 '1000'을 자연수 n으로 바꾸었을 때 그에 해당하는 답의 번호를 출력한다. 즉, 1 이상 5 이하의 자연수 중 하나를 출력해야 한다. www.acmicpc.net 내가 작성한 코드 (C++ 성공) #include using namespace std; int main(){ cin.tie(0); int n; cin >> n; /* 1 2 3 4 5 8 7 6 9 10 11 12 13 16 15 14 17 ... */ if(n%8 >= 1 && n%8
[C++] 소수점 자릿수 출력하기
2019. 7. 31. 22:48
프로그래밍 언어/C++
소수점 관련 알고리즘을 풀 때마다 까먹게 된다. 그래서 따로 메모해두기. C++ 에서 소수점 적용하는 방법 #include using namespace std; int main(){ double n = 1534.121354813; cout
C++ vector 에서 erase 함수 사용할 때 주의할 점
2019. 7. 26. 01:00
프로그래밍 언어/C++
vector의 값을 반복문을 통해 값을 출력할 때 주의할 점이 있다. iterator erase (const_iterator position); iterator erase (const_iterator first, const_iterator last); 설명하기 전에 erase 함수에 대해 간단하게 설명하자면 iterator erase (const_iterator position); const_iterator 타입의 position 은 제거할 요소를 가리킨다. iterator erase (const_iterator first, const_iterator last); first 와 last 사이의 모든 요소를 포함해서 요소들을 제거한다. erase 함수를 통해 요소를 지우게 되면 지운 요소 뒤에 있는 요소를..
[Programmers] Level 1. 체육복 (C++)
2019. 7. 26. 00:00
알고리즘/Programmers
정리 정말 많은 고민을 했던 문제였다. 처음에 문제를 보고나서 어떻게 풀지 고민을 했는데 2가지 방법이 생각이 났다. 첫 번째는, 체육복이 있으면 1, 체육복이 없으면 0, 여벌의 체육복이 있으면 2 로 정해두고 여벌의 체육복이 있는 학생의 수를 1 감소하고 없는 학생의 수를 1로 증가시켜서 마지막에 1인 학생의 수를 세서 출력하는 방법이다. 두 번째는, 체육복이 없는 학생을 일단 제외하고 여벌의 체육복이 있는 학생의 것을 빌려주면서 카운트를 더하는 방식이었다. 결과는 두 번째 방법으로 풀었는데 2~3시간 가량 고민 끝에 해결한 문제였다. 이 문제를 이렇게 풀어보았다. 1) 체육복을 잃어버린 학생과 여벌의 체육복이 있는 학생이 같다면 제외시켜준다. 2) 전체 학생에서 체육복을 잃어버린 학생을 빼준다. 3..