coding_test

coding_test/BAEKJOON

백준 10872번 C언어 풀이

https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 팩토리얼을 구현하는 문제 단계별 풀이의 재귀파트에 들어가기 때문에 재귀함수와 반복문으로 풀어보자. 반복문 #include // loop solution int main () { int a; long long result = 1; scanf("%d", &a); for (int i = 2; i

coding_test/BAEKJOON

백준 1712번 C언어 풀이

https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 문제에서 설명하는 손익분기점을 구하는 문제. 문제에서 말하는 손익분기점은 총수입이 총비용을 넘어서 이익이 발생하는 지점을 말한다. 손익분기점이 존재하지 않는 경우 -1을, 손익분기점이 존재하는 경우 손익분기점을 출력하는 문제. 문제에서 고정 비용을 a, 가변비용을 b, 판매가격을 c라고 한다. 손익분기점을 p라고 하자. 우리가 찾아야 하는 p를 수학적으로 구해보면 a + b*p < c*p 를 만족하는 ..

coding_test/BAEKJOON

백준 1316번 C언어 풀이

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 그룹단어란 단어에 존재하는 모든 문자에 대해 각 문자가 연속으로 나타나는 단어를 말한다. 예를 들면 aabbccc는 그룹단어이지만 ababccc는 그룹단어가 아니며, abc는 그룹단어이다. 일정이 너무 많아 기본구조만 짜고, 세부적인 내용은 내일 해야할 듯 싶다. #include #include #include bool group_checker (const char..

coding_test/BAEKJOON

백준 2941번 C언어 풀이

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 크로아티아 알파벳이라는 문자를 예전에는 그대로 쓸 수 없었는데, 이 문제를 피하기 위해 변형하여 썼다고 한다. 이 변형된 알파벳을 크로아티아 알파벳으로 개수를 세는 문제. 3번째로 푸는 실버티어의 문제이다. 이번에도 어렵겠지 싶었는데, 코드를 더럽게 짤 각오를 하고 하니 할만 했다.(솔직히 개선해야 할 것 같긴 하다.) 목록에 있는 변형된 크로아티아 알파벳을 ..

coding_test/BAEKJOON

백준 5622번 C언어 풀이

https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 다이얼에 적혀있는 알파벳과 숫자를 연동해서 푸는 문제. 알파벳에 따라 다이얼의 숫자로 바꾼 후에, 시간을 계산한다. 하나의 다이얼을 입력하는데 걸리는 시간은 다이얼에 적혀있는 숫자+1초만큼 걸리므로, 더해줄 때 1을 같이 더해준다. #include #include int change (const char a) { if (a == 'A'|| a == 'B'|| a == 'C') return 2; if (a == 'D'|| a == 'E'|| a == 'F') return 3; if ..

coding_test/BAEKJOON

백준 2908번 C언어 풀이

https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 숫자를 거꾸로 읽는 친구가 숫자간의 대소관계를 어떻게 풀지 해결하는 문제. 오히려 숫자를 거꾸로 읽어서 풀기가 쉬웠다. 그냥 문자열을 하나씩 읽으면서 10의 n승을 순차적으로 곱해주었다. #include #include int main () { int max; // 더 큰 수를 저장하기 위한 변수 int ten = 1; // 10의 승수 int num = 0; // 문자열에서 추출한 숫자를 저장하기 위한 변수..

coding_test/BAEKJOON

백준 1152번 C언어 풀이

https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net 공백을 포함한 문자열에서 단어의 개수를 세는 문제. 공백을 기준으로 판단하면 편하지만, 앞 뒤에 나오는 공백을 피해야 한다. 공백을 포함한 문자를 입력받으려면 scanf("%[^\n]", 문자열), 또는 gets(문자열), fgets(문자열, 길이, stdin)을 사용하면 된다. 하지만 gets의 경우 버전에 따라 사용이 불가능할 수 있으므로 잘 체크하자. 필자는 이 gets를 사용하다가 컴파..

coding_test/BAEKJOON

백준 1157번 C언어 풀이

https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 입력받은 알파벳 문자열에서 대소문자 상관없이 가장 많이 나온 문자를 찾는 문제. 문제를 풀기위해 아스키코드로 접근하였다. 먼저 아스키 코드값을 알아보자. #include int main(){ printf("%d\n%d", 'A' , 'a'); } A의 아스키코드는 65이고 a의 아스키코드는 97로 나온다. 따라서 A~Z의 아스키코드는 65~90이고, a~z의 아스키코드는 97~122임을 알 수 있다. 이를 이용하여 다음과 같이 풀..

CodeJin
'coding_test' 카테고리의 글 목록 (26 Page)