C++(6)
-
C++ 백준 1213 _ 팰린드롬 만들기
[C++ - 백준 1213] 문제 그래서 a~z 순으로 cnt에 알파벳 갯수를 추가했다. i = 'Z' ~ 'A' 까지 순회 하기 - 문제에서 정답이 여러개인 경우, 사전순으로 앞서는 것을 출력하라 했기 때문에 ret 문자열에 추가할때는 'Z' 부터 추가해준다. 그래야 ex) ZAZ -> BZAZB -> ABZAZBA 이렇게 추가되기 때문! cnt[i] & 1 은 비트 연산자로 홀수인지 짝수인지 여부를 체크해준다 - 홀수 인경우 mid 값에 저장하고 flag로 홀수인 알파벳의 개수를 확인한다 (2개 이상일 경우 팰린드롬을 만들 수 없기 때문!) 추후 위에서 저장한 mid char 을 ret 문자열 정중앙 (가운데)에 추가해주면 팰린드롬이 완성된다 #include using namespace std; in..
2023.02.10 -
C++ 백준 1620 _ 나는야 포켓몬 마스터 이다솜 문제 풀이
[C++ - 백준 1620] 문제 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제 설명 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 물어봐도 괜찮아. 나는 언제든지 질문에 답해줄 준비가 되어있어. 둘째 줄부터 N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력으로 들어와. 포..
2023.02.10 -
C++ 누적합
알고리즘 문제를 풀다보면 종종 for 문 대신 '누적합'을 사용해야하는 문제가 나온다 누적합이란? - 요소들이 누적된 합으로, 어떤 배열을 기반으로 요소들의 누적된 합을 저장해 새로 배열을 만들어 이를 활용하는 방법 - 앞에서 더하는 prefix sum (주로 코딩테스트에서는 prefix sum만 나옴!!) - 뒤에서 더하는 suffix sum prefix sum 만들 때 주의해야 할 점 - 0번째 요소는 비워두고 1번째 요소부터 사용하자 psum[1] -> 0, 1 psum[2] -> 0,1,2 psum[3] -> 0, 1,2,3 psum[4] -> 0,1,2,3,4 누적합을 코드로 구현해보자! for(int i = 1; i > a[i]; psum[i] = psum[i-1] + a[i]; } for(i..
2023.02.10 -
C++ String 알고리즘에서 자주 쓰이는 메서드
using namespace std; int main() { string a = "love is"; a += "pain!"; a.pop_back(); cout
2023.02.06 -
C++ STL
STL 은 간단하게 객체를 담는 '컨테이너', 객체에 접근하는 '반복자', 객체를 다루는 '알고리즘'으로 이루어졌다고 할 수 있다. STL 컨테이너 종류(container) 선형 컨테이너 array #include vector #include list #include forward_list #include deque #include 컨테이너 어답터 stack #include queue #include priority_queue #include 연관 컨테이너 set (tree) #include map (tree) #include unorder_set (hash table) #include unorder_map (hash table) #include STL 컨테이너의 공통적인 특징 1. 대부분 컨테이너의 멤..
2023.01.30 -
0. C++ 입출력
입력 1. std::cin 이용하기 개행 문자 (띄어쓰기 엔터) 까지만 입력 받는다 int main() { std::string s; std::cin >> s; // 안녕하세요 하이 std::cout
2023.01.27