개발/코딩테스트 7

백준 코딩테스트 boj 5615 : 아파트 임대

문제 동규부동산에서 아파트를 임대하고 있다. 아파트의 방은 아래 그림과 같이 면적이 2xy + x + y이다. (x와 y는 양의 정수) 동규부동산의 카탈로그에는 아파트의 면적이 오름차순으로 적혀져 있지만, 이 중 일부는 있을 수 없는 크기의 아파트이다. 만약, 이런 크기의 아파트를 임대하겠다고 말하면, 동규는 꽝! 이라고 외치면서, 수수료만 떼어간다. 동규부동산의 카탈로그에 적힌 아파트의 면적이 주어졌을 때, 있을 수 없는 크기의 아파트의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 아파트의 면적의 수 N이 주어진다. 다음 줄부터 N개 줄에 카탈로그에 적혀있는 순서대로 면적이 주어진다. N은 100,000이하이고 면적은 231-1이하인 양의 정수이다. 출력 첫째 줄에 있을 수 없는 아파트 면적의 ..

코드업(codeup.co.kr) 1550 : 함수의 양의 제곱근의 정수 부분만 리턴하기 해설 (C언어)

문제설명 양의 정수를 입력 받아 제곱근의 정수 부분만 출력하시오. 어떤 수 n의 제곱근은 제곱하여 n이 되는 수를 말한다. 예를 들어, 4는 (-2)*(-2) 또는 (2)*(2) 로 만들 수 있고 4의 양의 제곱근은 2를 의미한다. 3의 양의 제곱근은 1.7..... 이다. 단, 함수형 문제이므로 함수 sqrt()만 작성해 제출하시오. 입력 음이 아닌 long long int type 정수 n 이 입력된다. 출력 입력된 정수의 양의 제곱근의 정수부분만 출력한다. 입력 예시 16 출력 예시 4 해설 #include long long int n; long long sqrt(long long a) { long long int tmp = 0; for(long long i=0; i a) break; // 중단 끊..

코드업(codeup.co.kr) 1210 : 칼로리 계산하기 해설 (C언어)

문제 설명 시현이는 엄마와 함께 버엌퀸에 갔다. 시현이는 먹고 싶은게 많았으나, 부모님이 살찐다고 2가지만 골라서 먹으라고 했다. 그래서 두 메뉴의 칼로리 합이 500보다 크면 부모님이 화를 내고, 500 이하면 화를 내지 않으신다. 시현이가 선택할 수 있는 메뉴는 다음과 같다. 1. 치즈버거 : 400 cal 2. 야채버거 : 340 cal 3. 우유 : 170 cal 4. 계란말이 : 100 cal 5. 샐러드 : 70 cal 이 메뉴들 중 2가지 메뉴를 선택했을 때 cal 합을 계산하고, 그 칼로리 합이 500보다 크면 "angry", 500이하면 "no angry"를 출력하시오. 입력 메뉴의 번호가 차례대로 2개 주어진다. (정수) 출력 그 메뉴 번호의 메뉴 칼로리를 계산하여 500보다 크다면 "..

코드업(codeup.co.kr) 1180 : 만능 휴지통 해설 (C언어)

문제 설명 철수는 발명을 되게 좋아한다. 컴퓨터 프로그램도 굉장히 좋아한다. 어느 날 민호는 컴퓨터를 사용하던 중 휴지통이 꽉 차서 불편했다. 그래서 휴지통이 n만큼 차면 알아서 쓰레기를 압축해주는 휴지통을 만들기로 했다. 이 때 압축하는 알고리즘은 다음과 같다. 10의 자릿수와 1의 자릿수를 서로 바꾸고, 거기에 2를 곱한다. EX) 70일 경우 14가 된다.( 70 -> 07 -> 14 ) 이 알고리즘은 가끔 부작용을 일으킨다. 오히려 휴지통의 내용이 더 많아 질지도 모른다. 만약 n 수치가 100이 넘는 이 알고리즘의 심각한 부작용이 일어난다면 100의 자릿수는 무시된다. 입력 휴지통의 자동 압축 기준인 수치 n이 입력된다(1100){//결괏값이 98이하인 것을 이용 n = n - 100; } pr..

코드업(codeup.co.kr) 1205 : 최댓값 해설 (C언어)

문제 설명 두 실수 x, y가 입력되면 그 두수를 더하거나 빼거나 곱하거나 나누거나 제곱을 해서 가장 큰 수를 출력하라. 예를 들어 1과 2가 입력되면, 1+2 = 3 , 2+1 = 3 1 - 2 = -1, 2 - 1 = 1 1 * 2 = 2, 2 * 1 = 2 1 / 2 = 0.5, 2 / 1 = 2 1^2=1 , 2^1 = 2 따라서 최댓값은 3이다. 입력 실수 x,y 가 입력된다. ( x와 y의 계산결과는 모두 int range이고, 계산이 불가능한 경우는 입력에서 제외되었다.) 출력 최댓값을 소수점 이하 6자리로 잘라서 출력한다. 입력 예시 1 2 출력 예시 3.000000 1) 조건문 if 로만 푸는법 1. 계산/비교를 위한 적절한 변수 초기화 2. for 반복문으로 a^b , b^a 구하기 3..

코드업(codeup.co.kr) 1097 : 바둑알 십자 뒤집기 해설 (C언어)

C언어로 작성된 코드입니다. 문제설명 윤마는 검정색과 흰색 바둑알을 바둑판에 꽉 채워 깔아 놓으며 놀고 있다. 윤마는 십(+)자 뒤집기가 하고 싶어 졌다. 바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때, n개의 좌표를 입력받아 십(+)자 뒤집기한 결과를 출력하는 프로그램을 작성해라. 참고로, 가로 번호와 세로 번호를 사용할 수 있는 2차원 배열을 사용한다면 이러한 형태를 쉽게 기록하고 사용할 수 있다. 입력 처음에는 바둑알이 깔려 있는 상황이고, 19 * 19 크기의 정수값으로 입력된다. 두번 째는 십자 뒤집기 횟수(n)가 입력된다. 십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다. 출력 십자 뒤집기 결과를 출력한다. 입력예시 더보기..