BOJ - 이항 계수 1 11050
·
코딩테스트
해결방법이항계수라는 것은 다음 공식처럼 재귀함수를 이용하여 풀 수 있다. 물론 자리수가 조금만 커지게 된다면 저 방식으로는 제한시간 내에 풀 수 없을 것이다.다음번에 비슷한 문제가 나오게 된다면 새로운 해법을 가져오겠다. 풀이는 재귀함수를 이용하여 계산을 반복했다. 정답 코드#include using namespace std;static int LeeHang(int n, int r){ if (r == 0 || n == r) return 1; return LeeHang(n - 1, r - 1) + LeeHang(n - 1, r);}int main(){ int N, K, Out = 0; cin >> N >> K; Out = LeeHang(N, K); cout
BOJ - FizzBuzz 28702
·
코딩테스트
해결방법만약 3의 배수라면 Fizz, 5의 배수라면 Buzz, 3의 배수이면서 5의 배수라면 FizzBuzz를 출력하면 된다.입력받을 때 첫번째 수가 문자인 경우에도 두번째, 세번째 수까지 검사해서 숫자를 하나 찾아낸다. 그 수를 기점으로 시작점을 찾아내고, 세 개의 문자열 다음에 올 수를 찾아 그 수를 fizzbuzz 함수에 집어넣어 출력하는 것이다. 정답 코드#include #include #include using namespace std;string fizzbuzz(long long n){ if (n % 3 == 0 && n % 5 == 0) return "FizzBuzz"; if (n % 3 == 0) return "Fizz"; if (n % 5 == 0..
BOJ - 부녀회장이 될테야 2775
·
코딩테스트
해결방법조금 어려운 문제.0층부터 살고있고, 자신의 아래 층, 예를 들어 1층 2호라면 0층의 1호부터 2호의 사람의 수인 3명을 데려와야 한다.그래서 제한조건인 n반복문을 통해 0층부터 차례대로 사람의 수를 구해준다. 정답 코드#include using namespace std;int main(){ int T; cin >> T; int house[15][15] = { 0 }; for (int n = 1; n > k >> n; cout
BOJ - 데칼코마니 23841
·
코딩테스트
해결방법문자열을 입력받고, 반복문을 통해 양쪽에서 값을 비교한다. 만약 .이 나오게 된다면 그 반대편 문자를 확인하고 .이 맞다면 패스, .이 아니라면 그 문자열을 복사해 대입한다. 정답 코드#include #include #include using namespace std;int main(){ int N, M; cin >> N >> M; vector Decal(N); for (int i = 0; i > Decal[i]; } for (int i = 0; i
BOJ - 너의 평점은 25206
·
코딩테스트
해결방법등급을 입력받으면 그 등급을 점수로 변환해주는 함수를 만들어서 평점을 구한다. 만약 P/F의 경우 계산에서 제외해야 하기 때문에 -1로 변환해준다. 0보다 작은 경우, 즉 P/F의 경우 continue를 통해 넘겨버리면 된다. 정답 코드#include #include #include using namespace std;float getGradePoint(string grade){ if (grade == "A+") return 4.5; if (grade == "A0") return 4.0; if (grade == "B+") return 3.5; if (grade == "B0") return 3.0; if (grade == "C+") return 2.5; if (gra..
BOJ - 블랙잭 2798
·
코딩테스트
해결방법3개 카드의 값을 합하고, 반복을 계속해서 돌려서 M을 넘지 않는 가장 큰 값을 구한다. 정답 코드#include #include using namespace std;int main(){ int N, sum = 0; int M; cin >> N >> M; vector card(N); for (int i = 0; i > card[i]; } for (int i = 0; i sum) { sum = jack; } } } } cout