Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

JollyJumpers/임인택3: Difference between revisions

From ZeroWiki
imported>DamienRice
No edit summary
 
imported>DamienRice
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
  %io 부분 추가해야 함.
% 리스트에서 인접한 값의 차가 들어있는 리스트를 sort 해서 리스트 원소의 합과 가우스 합(?)을 비교.
  % io 부분 추가해야 함.
  -module(jolly).
  -module(jolly).
  -compile(export_all).
  -compile(export_all).
   
   
  jolly([H|T]) ->
  jolly([H|T]) ->
     jollyResult(lists:usort(jollySub(H, T, []))).
     jollyResult([H|T], lists:usort(jollySub(H, T, []))).
   
   
  jollyResult(Res) ->
  jollyResult(Ori, Res) ->
    Res,
     case (length(Ori)-1 =:= length(Res) andalso lists:sum(Res) =:= trunc((hd(Res)+lists:last(Res))*length(Res)/2)) of
     case (lists:sum(Res) =:= trunc((hd(Res)+lists:last(Res))*length(Res)/2)) of
      true ->
      true ->
  io:format("Jolly~n");
  io:format("Jolly~n");
Line 14: Line 14:
          io:format("Not Jolly~n")
          io:format("Not Jolly~n")
     end.
     end.
     
  %앞의 것과 뒤의 아이템을 빼서 새 리스트에 더함..
  %앞의 것과 뒤의 아이템을 빼서 새 리스트에 더함..
  jollySub(H, [], Res) ->
  jollySub(H, [], Res) ->
Line 20: Line 20:
  jollySub(H, [HH|T], Res) ->
  jollySub(H, [HH|T], Res) ->
     jollySub(HH, T, Res++[abs(H-HH)]).
     jollySub(HH, T, Res++[abs(H-HH)]).
위의 코드에 다음과 같이 메시지를 받는 함수를 작성하면, 이 함수를 생성하고 메시지로 리스트를 전달하면 똑같이 이용할 수 있다.
jollyInt() ->
    receive
H -> jolly(H)
    end.
> Pid = spawn(jolly:jollyInt/0).
> Pid ! [4,1,3,2].
----
LittleAOI, JollyJumpers



Latest revision as of 03:50, 19 November 2008

% 리스트에서 인접한 값의 차가 들어있는 리스트를 sort 해서 리스트 원소의 합과 가우스 합(?)을 비교.
% io 부분 추가해야 함.
-module(jolly).
-compile(export_all).

jolly([H|T]) ->
    jollyResult([H|T], lists:usort(jollySub(H, T, []))).

jollyResult(Ori, Res) ->
    case (length(Ori)-1 =:= length(Res) andalso lists:sum(Res) =:= trunc((hd(Res)+lists:last(Res))*length(Res)/2)) of
	    true ->
		io:format("Jolly~n");
	    false  ->
	        io:format("Not Jolly~n")
    end.

%앞의 것과 뒤의 아이템을 빼서 새 리스트에 더함..
jollySub(H, [], Res) ->
    Res;
jollySub(H, [HH|T], Res) ->
    jollySub(HH, T, Res++[abs(H-HH)]).

위의 코드에 다음과 같이 메시지를 받는 함수를 작성하면, 이 함수를 생성하고 메시지로 리스트를 전달하면 똑같이 이용할 수 있다.

jollyInt() ->
    receive
	H -> jolly(H)
    end.

> Pid = spawn(jolly:jollyInt/0).
> Pid ! [4,1,3,2].

LittleAOI, JollyJumpers