Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- pdf복붙
- magnetic field
- 이것이 C언어다
- 구글번역
- piano cover
- 조립식 컴퓨터
- Python
- 서현우의 C프로그래밍 정복
- 씀
- 원소
- SRGAN
- 논문 구글번역
- 피아노커버
- 너의 이름은 ost
- mri
- 피아노 커버
- pdf 파파고
- python piano
- 함수 원형
- 유재하
- C언어
- pdf 복붙
- 자기장
- 재귀호출
- C
- 중성자
- 논문 파파고
- super resolution
- function
- 수소
Archives
- Today
- Total
로봇이 되고픈 부엉이
(C 언어) 프로젝트 : 채널 돌리기 본문
728x90
반응형
문제1
빈수는 테레비를 보고 있다.
리모콘이 고장나버렸다.
원하는 버튼으로 가기 위해
1. 원하는 버튼으로 부터 가장 가까운 번호를 찾는다.
2. 거기로 부터 +또는 -하여 원하는 버튼으로 접근한다.
현재 채널이 100일 때, 다음 입력을 받고 문제를 해결해보자.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#define NOW 100
int main() {
printf("채널 입력 : "); int New_channel; scanf("%d", &New_channel);
printf("고장난 버튼의 개수 입력 : "); int num_Broken; scanf("%d", &num_Broken);
getc(stdin); printf("고장난 버튼 입력 : "); char Broken[21]; gets(Broken);
//printf("%d %d %s\n", New_channel, num_Broken, Broken);
int min = 0;
if (num_Broken == 0) {
printf("버튼 누르는 최소 횟수 : %d",(int)log10(New_channel)+1);
return 0;
}
if (NOW == New_channel) {
min = 0;
}
else {
if (abs(NOW - New_channel) < (log10(New_channel) + 1))
{
min = abs(NOW - New_channel);
}
else {
int up = New_channel, down = New_channel;
char UP[7] = "\0", DOWN[7] = "\0";
while (1) {
up++, down--;
sprintf(UP, "%d", up); sprintf(DOWN, "%d", down);
int U = 0, D = 0;
for (int i = 0; i < strlen(UP); i++) {
for (int j = 0; j < num_Broken; j++) {
if (UP[i] == Broken[2 * j]) {
U = 1; break;
}
}
if (U == 1) {
break;
}
}
for (int i = 0; i < strlen(DOWN); i++) {
for (int j = 0; j < num_Broken; j++) {
if (DOWN[i] == Broken[2 * j]) {
D = 1; break;
}
}
if (D == 1) {
break;
}
}
if (U == 0) {
min = abs(New_channel - up) + strlen(UP);
break;
}
if (D == 0) {
min = abs(New_channel - down) + strlen(DOWN);
break;
}
}
}
}
printf("버튼 누르는 최소 횟수 : %d", min);
return 0;
}
728x90
반응형
'대학생의 그쩍거림 > C 언어' 카테고리의 다른 글
(비주얼 스튜디오 문제) scanf: This function or variable may be unsafe. (0) | 2019.05.27 |
---|---|
(C 언어) 압축문자열 (0) | 2019.05.27 |
(C 언어) 동전던지기 게임 (0) | 2019.05.17 |
(C 언어) 최대 부분합 구하기 (0) | 2019.05.17 |
(C 언어) Factorial(재귀호출 사용) 팩토리얼 n! 구하기 (0) | 2019.04.21 |