본문 바로가기

전체 글272

C++ - stack, que, deque, priority_que 자료구조 특징 삽입 삭제조회Stack (LIFO)후입선출push()pop()top()Queue (FIFO)선입선출push()pop()front(), back()Priority Queue우선순위 높은 원소가 먼저 나감push()pop()top()Deque양쪽 삽입/삭제 가능push_back(), push_front()pop_back(), pop_front()front(), back() 어떤 것을 써야 할까?스택: "뒤집기", "DFS", "연산기록 저장"큐: "선입선출", "BFS", "작업 스케줄링"우선순위 큐: "최댓값/최솟값 관리", "힙(Heap) 활용"덱: "양방향 삽입/삭제", "슬라이딩 윈도우" 2025. 2. 22.
String을 replace 하는 방법들 방법사용목적코드str.replace(위치, 길이, 새 문자열)특정 위치의 문자열을 변경str.replace(6, 5, "C++");std::regex_replace()여러 개의 특정 문자열 변경(정규식 가능)std::regex_replace(str, std::regex("apple"), "banana")std::replace()특정 문자 변경std::replace(str.begin(), str.end(), 'a', 'X');std::string::find() + replace()문자열 전체 변경 (반복)while ((pos = str.find(...)) != std::string::npos) str.replace(...);std::erase() + std::remove()특정 문자 제거str.erase(.. 2025. 2. 22.
최빈값 구하기 - C++, unordered_map, auto 주소 코드 & 풀이 #include #include using namespace std;int solution(vector array) { unordered_map freq; for (int num : array) freq[num]++; int max_cnt = 0, mode = -1; bool is_duplicate = false; for (auto &[num, count] : freq){ if(count > max_cnt){ max_cnt = count; mode = num; is_duplicate = false; } else if(count == max_cnt){ .. 2025. 2. 22.
배열 두 배 만들기 - C++, vector, 참조(&), 반복문 https://school.programmers.co.kr/learn/courses/30/lessons/120809 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  코드 & 풀이 #include using namespace std;vector solution(vector numbers) { for(int &num : numbers){ num  참조(&) 라는 재밌는 방식을 알게 되었다.  예시 5 * 2일 때 5의 이진수 = 0000 0101 10 (5 * 2) 의 이진수 = 0000 1010 이기에 왼쪽으로 한 칸 씩 움직이면( 2배가 되는 것을 볼 수 있습니다. 2025. 2. 22.
C++ 자료형과 변수 C++에서는 일반적으로 기본 자료형으로 정의한 것을 변수, 사용자 정의 자료형으로 정의한 것을 객체라 함. //! 정의 : 자료형 변수명;bool b; /// 기본 자료형 정의 및 초기화int n = 0;int n(0);int n = {0};int n{0};// 64bit systembool b = true; // mov BYTE PTR [rbp-1], 1 # 1 bytechar c = 'a'; // mov BYTE PTR [rbp-2], 97 # 1 byteint n = 0; // mov DWORD PTR [rbp-8], 0 # 4 byte (rbp-8 ~ 5까지)long l = 0; .. 2025. 2. 21.
억억단을 외우자 - Python https://school.programmers.co.kr/learn/courses/30/lessons/138475 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  코드 & 풀이 def solution(e, starts): num_count = [0] * (e + 1) for i in range(1, int(e ** 0.5) + 1): for j in range(i, e // i + 1): num = i * j if i == j: num_count[num] += 1 else: .. 2025. 2. 21.