본문 바로가기

문제풀이 (백준)/0. 문제풀이 팁과 스킬

(2)
큰 수의 연산들 큰수의 연산 long long 범위를 넘어가는 수에 대해서 가끔 연산을 수행해야하는 경우가 있다. 이 경우 string을 통해 연산해야한다. 프로그래밍 대회나 문제풀이에서 가끔 보이니 익혀두는게 좋을 것 같아서 따로 정리해보려고 한다. 이 포스트에서는 반복적으로 수가 더해지거나 곱해져서 input이 커진 경우가 아닌 (이 경우는 다른 포스트에서 다룰 예정), 처음부터 long long 범위를 벗어나는 input에 대한 처리를 다룬다. 1. 덧셈 string addition (string a, string b) { string result; int flag_a = 0, flag_b = 0; if (a[0] == '-') flag_a = 1; if (b[0] == '-') flag_b = 1; if (fla..
PS 일반론 PS 일반론 문제해결 프로세스 I. 문제를 읽고 요구하는 바를 명확히 이해해야합니다. 즉, 어떤 인풋을 받아 어떤 아웃풋을 내야하는지 정확히 이해해야합니다. Ex) 백준 10872번: 팩토리얼 N이라는 인풋을 받았을 때, N!의 값을 출력하면 되는구나 라고 명확하게 이해해야합니다. 위의 문제는 비교적 짧고 간단하기 때문에 실수하지 않겠지만 문제가 복잡해질수록 실수하기 쉬우므로 항상 문제에 대한 정확한 이해가 가장 중요합니다. II. 요구하는 바를 어떻게 해결할지 자신만의 알고리즘을 설계 합니다. 아웃풋을 내기 위해 어떻게 해야할지 고민하는 과정입니다. 이 과정에서 알고리즘은 우리가 배워야만 아는 BFS, DFS 같은 알고리즘일 수 있고, 단순히 구현일 수도 있습니다. 위 팩토리얼 문제의 경우 재귀(rec..