BOJ solved.ac 18110
·
코딩테스트
해결방법우선 절사평균을 구하기 위해 입력받은 데이터들을 정렬을 해줘야 한다. 여기서는 상하 15퍼를 버리고 남은값들의 평균을 낸다고 했으니 n * 0.15 + 0.5 이런 식으로 15퍼센트를 구하고 0.5를 더해 반올림을 해준다. 그다음 start와 end 변수를 만들어서 절사한 후의 범위를 만들어주고, accumulate와 distance를 이용해 절사평균을 구해준다. 정답 코드#include #include #include #include #include using namespace std;int Tmean(vector& data){ if (data.empty()) { return 0; } sort(data.begin(), data.end()); int n = ..
BOJ 숫자의 개수 2 21567
·
코딩테스트
해결방법입력받은 숫자를 문자로 변환하여 문자열의 맨 뒤에서부터 '0'을 빼서 아스키코드를 통한 연산으로 숫자를 받아서 배열의 수를 증가시킨다. (예를 들어 13410의 경우 맨 뒤에서부터 0, 1, 4, 3, 1이 1번씩 증가)원리는 숫자의 아스키 코드값이 연속적이고, 0, 1, 2, 3... 순으로 배치되어 있기 때문에 그 특성을 활용한 것이다. 정답 코드#include #include using namespace std;int main(){ std::cin.tie(NULL); std::ios::sync_with_stdio(false); unsigned long long A, B, C, temp; string num; cin >> A; cin >> B; cin >> C; temp = A * B * C;..
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