Baekjoon(C++)

Baekjoon(C++)

[백준] 1874번: 스택 수열 C++로 풀어보기

어떻게 풀까? (문제를 풀고 처음 든생각) 문제를 다시 읽어봐도 예제 입력값이 어떻게 예제 출력값을 유도하는 지 이해가 가지 않았다. 그래서 천천히 단계별로 생각해 보기로 했다. 배열 : 4 3 6 8 7 5 2 1 지금 배열은 4를 가리키고 있다. 4를 처리하면 다음 배열값으로 넘어간다. 1. stack | vector 1 2. stack | vector 2 1 3. stack | vector 3 2 1 4. stack | vector *it) { // top이 현재 수열이 가리키는 값보다 크다면 cout

Baekjoon(C++)

[백준] 5397번: 키로거 C++로 풀어보기

어떻게 풀까? (문제를 보고 처음 든 생각) 연결 리스트로 풀면 될 것 같다. STL list를 활용하자. ※ STL list 사용법: https://losskatsu.github.io/programming/c-stl-list/#2-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%82%AC%EC%9A%A9%EC%98%88 [C언어] C++ STL 리스트(list) 사용법 정리 C++ STL 리스트(list) 사용법 정리 losskatsu.github.io string 배열에 문자열을 입력을 받고 ''일 때는 iter를 하나 추가하고(a.end()가 아닐 때) '-'일 때는 erase를 사용하면 될 것 같다.(a.begin()이 아닐 때 코드 #include using namespace std; ..

Baekjoon(C++)

[백준] 1919번: 애너그램 만들기 C++로 풀어보기

어떻게 풀까? (문제를 풀고 처음 든 생각) 1. 일단 단어 두 개를 입력받고 각각 벡터에 넣는다. 2. 첫번째 벡터의 알파벳을 두번째 배열의 알파벳이 겹치는 것이 있는지 루프를 돌린다.(이중루프 이용) 3. 찾으면 첫번째 벡터과 두번째 벡터에서 그 알파벳을 뺀다. 4. 그리고 계속 루프를 돌린다. 5. 루프가 다 끝나면 첫번째 벡터, 두번째 벡터에서 남은 알파벳 개수를 더한다. 코드 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); vector v1; vector v2; string word1; string word2; int cnt = 0; // 단어 두 개 입력 cin >> word1..

Baekjoon(C++)

[백준] 2609번: 최대공약수와 최소공배수 C++로 풀어보기

어떻게 풀까? (문제를 풀고 처음 든 생각) 최대공약수와 최소공배수라는 단어를 진짜 오랜만에 듣는다. 어떻게 구하는지도 기억이 가물가물하다. 소인수분해를 해서 나온 소인수들을 벡터에 저장하고, 최대공약수는 벡터에 저장해놓은 소인수들을 곱한 값으로, 최대공배수는 최대공약수에 소인수들로 나눠진 두 수를 곱해서 구하면 될 것 같다. 코드 #include using namespace std; int main() { int a, b; vector v; int max, min; int cnt = 1; cin >> a >> b; int x = 2; while (1) { if (a % x == 0 && b % x == 0) { // 공약수를 찾았으면 a = a / x; b = b / x; v.push_back(x); ..

Baekjoon(C++)

[백준] 27866번: 문자와 문자열 C++로 풀어보기

어떻게 풀까? (문제를 보고 처음 든 생각) string은 한 글자씩 접근이 가능하다.(단, 시작은 0이다.) 단어 S와 숫자 i를 입력받고, 단어에서 i-1번째 글자를 출력해주면 될 것 같다. 코드 #include using namespace std; int main() { string s; int i = 0; cin >> s; cin >> i; cout

Baekjoon(C++)

[백준] 4153번: 직각삼각형 C++로 풀어보기

어떻게 풀까? (문제를 풀고 처음 든 생각) 주어진 세변의 길이가 직각인지 아닌지 구분하려면 a의 제곱 + b의 제곱 = c의 제곱이 되어야한다. 이 때 c는 a나 b보다 큰 수여야 한다. 각 테스트케이스는 모두 30000보다 작은 양의 정수로 주어졌으므로 int를 써도 될 것 같다. while문을 써서 무한반복을 한다. 숫자 3개를 입력받는다. 만약 숫자 3개가 다 0이면 break를 써서 while문을 빠져나와 프로그램이 종료가 된다. 숫자 3개를 배열 안에 넣는다. 배열을 오름차순으로 정렬한다. 첫번째 배열 값의 제곱과 두번째 배열 값의 제곱의 합이 세번째 배열 값의 제곱과 같은지 확인한다. 맞으면 right를, 틀리면 wrong을 출력한다. 코드 #include using namespace std..

퀵차분
'Baekjoon(C++)' 카테고리의 글 목록 (3 Page)