PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/12/16 14:59:09
Name 소인배
Subject 어떻게 하면 더 줄일 수 있을까요?
http://programming-challenges.com/pg.php?page=downloadproblem&probid=110103&format=html

를 풀고 있는데 심심해서 숏코딩을 해 보기로 했습니다. 현재의 코드는

#include <stdio.h>
int i,j;
float s,d,t,a[1000];
main(n)
{
        for(;~scanf("%d",&n);s=d=0)
        {
                if(n==0)break;
                for(i=0;i<n;i++)
                {
                        scanf("%f",&a[i]);
                        s+=a[i];
                }
                for(i=0;i<n;i++) d+=(s/n>a[i])?s/n-a[i]:a[i]-s/n;
                printf("$%.2f\n",d/2);
        }
}

이렇게 되는데 더 줄일 수 있는 (소스코드의 총 byte 수) 방법은 뭐가 있을까요? 환경을 안 탔으면 좋겠구요.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
09/12/16 15:05
수정 아이콘
환경타는 코드면 엄청 줄일 수 있지만,
일단 탭 제거, 엔터제거, #include<stdio.h> 등의 스페이스 제거등은 제출하기 전에 해보실테고,

if(n==0)break;는 바깥 for문의 조건문을 scanf("%d",&n),n 으로 고치면서 해결 가능하겠습니다.
그 외에도 ;를 없애서
,
를 main함수 이외에는 전혀 사용하지 않는 방법이 있구요.

자세히 안 봤지만 d+=부분을 적절히 stdio.h를 바꿔서 abs함수를 이용할 수 있게하면 좋겠구요.
소인배
09/12/16 15:07
수정 아이콘
kcm1700님// abs가 int에 먹히는 거라 결과가 이상하게 나와서 저렇게 했어요.
09/12/16 15:11
수정 아이콘
fabs는 어떤가요. 부동소수점용 함수입니다.
소인배
09/12/16 15:21
수정 아이콘
kcm1700님// 음... 그러네요. 근데 math.h랑 stdio.h를 모두 포함하는 헤더 파일이 뭐가 있지요?
소인배
09/12/16 16:11
수정 아이콘
현재 코드는

#include<stdio.h>
int i;
float s,d,t,a[1000];
main(n)
for(;~scanf("%d",&n),n;s=d=0){
for(i=0;i<n;i++){scanf("%f",&a[i]);s+=a[i];

for(i=0;i<n;i++)d+=(s/n>a[i])?s/n-a[i]:a[i]-s/n;
printf("$%.2f\n",d/2);}}

197바이트입니다. 이거 생각보다 많이 힘드네요.
부엉군
09/12/16 17:17
수정 아이콘
어차피 컴파일 하면 똑같은데.. 줄이면 머 좋나요?;;
소인배
09/12/16 17:34
수정 아이콘
부엉군님// 심심해서요.
09/12/16 17:45
수정 아이콘
근데 이 코드 정확하긴 한가요? 문제 지금 읽어봤는데, 이거 옳은 솔루션이 아닌 것 같네요.
4
1.00
1.01
1.01
1.01
소인배
09/12/16 18:03
수정 아이콘
kcm1700님// 음...그러네요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
70046 Rcrawler 4.5 라는 프로그램 큭큭나당1825 09/12/16 1825
70045 블로그에 관해서 질문이있습니다. [3] 루비띠아모1511 09/12/16 1511
70044 컴퓨터 부팅에러 & 견적 질문 드리겠습니다. [6] MsGs1771 09/12/16 1771
70043 신피지투어 저만 안되는건가요?? [2] 테란완전정복1887 09/12/16 1887
70042 오늘 공익신청했어요.. 답변 부탁드려요. [8] Forever.h2156 09/12/16 2156
70041 윈도우창 왼쪽에 이상한 팝업같은게 뜨는데요. [3] 김영대2297 09/12/16 2297
70040 내일 노트북(미개봉 신품)을 직거래 하는데 주의 사항좀 가르쳐 주세요. [3] 드라군의 뇌3186 09/12/16 3186
70038 제 통장에 모르는명의로 30만원이 입금되었는데요. [6] 동료동료열매2825 09/12/16 2825
70037 PC 메인보드 및 견적 질문드립니다. [8] BlueCool1853 09/12/16 1853
70034 PC 견적좀 봐주세요 [8] Zwei1837 09/12/16 1837
70033 개그콘서트 '씁쓸한 인생'코너에서 [9] let8pla3581 09/12/16 3581
70032 [와우] 회드 사장 갈시 템 파밍 질문입니다. [4] run to you2172 09/12/16 2172
70031 이번 공익 본인선택 하신분? [2] 김지호2094 09/12/16 2094
70030 던파 질문 드립니다 (해킹 당했습니다) [2] 서현1811 09/12/16 1811
70029 어떻게 하면 더 줄일 수 있을까요? [9] 소인배2157 09/12/16 2157
70028 만화책 베르세르크 질문드립니다^^ (안보신분들 스포주의) [17] 현상2538 09/12/16 2538
70027 밤 잘새우기... [6] 2267 09/12/16 2267
70026 코비나 연아햅틱 쓰시는분? [2] 소녀시대서주1913 09/12/16 1913
70025 한국사 책 추천 부탁드립니다. [1] 바나나 셜록셜2090 09/12/16 2090
70023 [와우] 드루이드로 만렙을 찍었습니다. 이젠 뭘 해야 할까요? [7] run to you2858 09/12/16 2858
70022 컴터로 만화책볼때 어떤 프로그램 쓰시는지? [8] -PgR-매니아2929 09/12/16 2929
70021 유게 게시물을 찾아주세요. Aphrodite1935 09/12/16 1935
70020 날씨 언제쯤 풀리나요? [7] 김재혁2313 09/12/16 2313
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로