More actions
imported>DamienRice No edit summary |
imported>DamienRice No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
% 리스트에서 인접한 값의 차가 들어있는 리스트를 sort 해서 리스트 원소의 합과 가우스 합(?)을 비교. | % 리스트에서 인접한 값의 차가 들어있는 리스트를 sort 해서 리스트 원소의 합과 가우스 합(?)을 비교. | ||
% io 부분 추가해야 함. | |||
%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) -> | ||
case (lists:sum(Res) =:= trunc((hd(Res)+lists:last(Res))*length(Res)/2)) of | case (length(Ori)-1 =:= length(Res) andalso lists:sum(Res) =:= trunc((hd(Res)+lists:last(Res))*length(Res)/2)) of | ||
true -> | true -> | ||
io:format("Jolly~n"); | io:format("Jolly~n"); | ||
| Line 15: | Line 14: | ||
io:format("Not Jolly~n") | io:format("Not Jolly~n") | ||
end. | end. | ||
%앞의 것과 뒤의 아이템을 빼서 새 리스트에 더함.. | %앞의 것과 뒤의 아이템을 빼서 새 리스트에 더함.. | ||
jollySub(H, [], Res) -> | jollySub(H, [], Res) -> | ||
| Line 21: | 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 | 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