본문 바로가기

분류 전체보기

(108)
백준 28702번 - FizzBuzz 문제 C++ 📍 백준 28702번 - FizzBuzz 문제 C++https://www.acmicpc.net/problem/28702🧩문제 요약 한 줄에 숫자 또는 "Fizz", "Buzz", "FizzBuzz" 중 하나씩 최대 3줄 주어짐마지막 줄에 이어지는 다음 수에 해당하는 출력을 하라는 문제이 문제는 단순하지만 string을 어떻게 처리하는지에 따라 다양하게 표현 할 수 있는 것 같다. 🧾 내가 짠 코드 #include #include using namespace std; string fizzbuzz(int n ){ if(n%15 == 0 ) return "FizzBuzz"; else if(n%3 == 0) return "Fizz"; else if(n%5 == 0) return "Buzz..
백준 10989문제 - 수 정렬하기 3 C++ 📍 백준 10989문제 - 수 정렬하기 3 C++https://www.acmicpc.net/problem/10989 🧩 문제 설명이 문제는 오름차순 정렬을 구현하는 문제이다. 하지만 sort()를 사용해도 시간초과가 나고 정렬알고리즘을 구현해도 시간초과가 났다.그래서 어떻게 풀어야하는지 감을 못잡고 있었다. 해법은 배열을 활용한 접근법에 있었다. 내가 너무 정렬에만 꽂혀서 다른 방법을 생각조차 못해본 것이다.  배열을 사용하면 문제를 정말 간단하게 해결할 수 있다. 👍 이 문제에서 배운점처음에는 무조건 배열에 수를 저장해두었다가 정렬알고리즘을 구현해서 다시 출력하는 방식으로 문제에 접근했다. (정석 방식)하지만 이렇게 하면 무조건 메모리 초과나 시간초과가 뜬다.  ✅ 왜 시간초과가 날까? N의 최댓..
백준 2569번 - 달팽이는 올라가고 싶다 C++ 📍 백준 2569번 - 달팽이는 올라가고 싶다 C++https://www.acmicpc.net/problem/2869  🧩 문제요약이 문제는 달팽이가 목표지점까지 몇일만에 올라갈 수 있을 지 구하는 문제다. 문제가 매우 짧고 단순하기 때문에 for문으로 금방 해결 할 수 있어 보인다.  하지만 for문으로 구현을 하면 시간초과에 걸리고 만다. 그렇다면 어떻게 해결해야 할까?  👍 이 문제에서 배울 점여기서는 for문을 활용한 방법이 아닌 수학적인 수식을 발견해야 한다. 달팽이는 낮에 a만큼 올라갔다가 밤에 b만큼 내려오게 된다. 이 과정을 반복하면서 최소 몇일이 걸려야 목표 지점에 도달하게 될까? 이 문제에서 중요한 포인트는 "목표지점에 도달하면 더이상 내려오지 않다"는 것이다.  달팽이가 하루에 ..
백준 15829번 - Hasing 문제 C++ 📍 백준 15829번 - Hasing 문제  C++ https://www.acmicpc.net/problem/15829  🧩 문제요약문자를 입력받아 hasing 구현하기 r = 31m = 1234567891 👍 이 문제에서 배울점이 문제는 점수가 small 50점 large 50점으로 나눠져 있다. small은 가볍게 풀어도 점수가 나오지만 large를 만족하기 위해서는 자료형을 고민해야한다.  ✅ C++의 자료형자료형크기비트 수값의 표현범위정수형char1byte8-128 ~ +127 (8bit = 2^8 = 256가지)short2byte16- 32,768 ~ + 32,767 (16bit = 2^16 = 65,536가지)int4byte32-2,147,483,648 ~ +2,147,483,647 (3..
백준 2292번 : 벌집 C++ 📍 백준 2292번 : 벌집 C++https://www.acmicpc.net/problem/2292  🧩문제요약 : 1번 방에서 시작해서 N번 방에 도달하기 위해 지나야하는 최소 층수를 구하는 문제  1번 방은 1층 (기본)그 다음 부터는 6개씩 늘어난다.   코드 구현#include using namespace std;int main(){ int N, layer = 1, cnt = 1; scanf("%d",&N); while(N>cnt){ cnt += 6*layer; layer++; } printf("%d\n", layer);} 👍이 코드에서 배울점이 문제를 풀다가 loop의 조건을 어떻게 줘야할지 고민을 많이 했는데 생각보다 아주 간단하게 해..
백준 2231번 - 분해합 문제 C++ 오늘 백준 문제를 풀다가 너무너무 똑똑한 풀이법이 있어서 기록한다.  📍 백준 2231번 문제 - 분해합 이다. https://www.acmicpc.net/problem/2231 🧩 문제 요약 어떤 자연수 N이 있을 떄, 어떤 수 M이 M+각 자리수의 합 = N이 되면 M 은 N의 생성자라고 한다. N의 가장 작은 생성자를 출력하는 문제다. --- 없으면 0 출력 예:N = 216 → 198 + 1 + 9 + 8 = 216 → 198이 생성자  🧾 내가 작성한 코드 #include using namespace std;int main(){ int N; scanf("%d", &N); // 값 입력 for(int i=1;i  🧾 상위 코드 #includeint main(){ in..
소수찾기 알고리즘 C++, 에라토스테네스의 체 소수란? 1보다 크고, 1과 자기 자신 외에는 나누어지지 않는 수를 말한다. (예 : 2, 3, 5, 7, 11, 13 ....) 🧩 기본 소수 판별 (Brute Force)하나의 수n에 대해 2부터 √N까지 나눠보며 소수인지 판단. 시간복잡도 : O(√N)✅ 작거나 단일 수 하나만 판단할 때 적합. bool is_prime(int n){ if(n   💡 에라토스 테네스의 체란?  에라토스테네스의 체는 소수를 빠르게 구하는 고전적인 알고리즘이다. 특히 1부터 N까지의 소수를 구할 때 매우 효율적이다.  에라토스테네스의 체 알고리즘은 다음과 같다. 2부터 N까지의 모든 자연수를 나열한다. 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾는다. 남은 수 중에서 i의 배수를 모두 제거한다.(i는 ..
[자료구조] 우선순위 큐(Priority Queue)C++ 구현 우선순위 큐를 이래하기 위해선 먼전 heap을 알아야한다.https://codinghago.tistory.com/97 [자료구조] 힙(heap) 최소힙(min heap), 최대힙(max heap) C++ 구현큐(Queue) : 먼저 들어오는 데이터가 먼전 나가는 선입선출(FIFO) 구조우선순위 큐(Priority Queue) : 우선순위가 높은 데이터가 먼저 나가는 구조힙(Heap) : 루트 노드에 최대값이나 최소값을 저장하고codinghago.tistory.com 📍 우선순위 큐(Priority Queue)란? Queue는 먼저 들어오는 데이터가 먼저 나가는 선입선출(FIFO)형식의 자료구조이다. Priority Queue는 Queue에 우선순위 개념을 도입한 자료구조로 들어오는 순서에 상관 없이 우..