Category: computer science

0

백준[2331] - 반복 수열

문제백준 2331 문제 보기 접근 방법최악의 상황으로 메모리를 잡고 연산을 계산해보니 시간 초과는 나지 않을 것 같아 배열을 최대로 잡고 풀었다. 먼저 계속 각 자리를 제곱해 더한 수를 따로 배열에 저장하고 계산 진행하다 추후에 반복된 숫자가 나오면 완전 탐색을 빠져 나간다.dfs함수 안에서 cnt를 세는 건 참고로 안해도 된다. 코드#include <

0

백준[1707] - 이분 그래프

문제백준 1707 문제 보기 접근 방법처음 이차 배열을 다 잡아 놓고 시작했다. 그럼 128MB 밖에 안되는 문제 요건을 충족할 수 없어 vector을 활용해 추가될때마다 공간를 만드는 형식으로 변환했다. dfs를 돌며 blue, red로 번갈아가며 색을 배정한다.dfs를 다 돌면 노드 별로 연결된 노드를 확인하며 색이 같은지만 체크하면 된다. 코드#inc

0

백준[11724] - 연결 요소의 개수

문제백준 11724 문제 보기 접근 방법dfs로 접근해 거의 리니어한 타임에 문제를 풀수 있다. 그 대신 사이클이 있는 경우를 대비해 방문한 노드를 체크하고 방문했을 경우에는 다시 해당 노드로 접근하지 않는다. 코드#include <iostream> #include <cstring> using namespace std; int N, M;

0

백준[11650] - 좌표 정렬하기

문제백준 11650 문제 보기 접근 방법pair를 사용하면 pair 컨테이너의 구현된 정렬 기준에 따라 앞에 값을 비교하고 같으면 뒷 값을 비교한다. 처음 제출했을 때는 시간 초과가 났는데 출력할때 cout << endl이 시간이 오래 걸리기 때문이었다. 코드#include <iostream> #include <vector> #in

0

백준[10989] - 수 정렬하기 3

문제백준 10989 문제 보기 접근 방법문제는 간단하다. 입력된 수를 오름차순으로 정렬만 하면 된다. 하지만 입력이 10,000,000 이다. 즉, sort로 간단하게 구현하면 메모리 초과를 유발할 수 있다. 이에 따라 다른 접근 방법을 택했다. 입력을 받으며 해당 숫자가 몇개 입력 됐는지 체크한다. 코드#include <iostream> #incl

0

백준[2745] - 진법 변환

문제백준 2745 문제 보기 접근 방법입력된 B진법을 10진수로 변환해주면 된다. 코드#include <iostream> #include <math.h> using namespace std; string s; int b, ans; long size; int main() { cin >> s >> b; size = s.si