[완료] perl 배열에 관한 질문입니다.

lovethecorners의 이미지

예를 들어서 서로 다른 배열이 다음과 같을때,

@arr1 = ( 1, 2, 3, 3, 4, 5 );
@arr2 = ( 1, 2, 3, 4, 5, 5 );
@arr3 = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11 );

여기서 두번 겹치는 수인 3, 5, 9만을 각각 따로 빼내서 다른 변수에 넣으려 하는데 방법이 있을까요?

lovethecorners의 이미지

음...억지 스럽지만,

구글링 해서 찾은것을 응용 했습니다.

sub uniqueElements {
	my ($item, %seen, @result);
 
	foreach $item (@_) {
		push(@result, $item) if $seen{$item}++;
	}
 
	return @result;
}

==
more than one way to do it
말로만 블로거: http://gojdweb.egloos.com
pung96의 이미지

문제를 잘못이해해서 잘 못 댓글을 달았네요.

전혀 억지스럽지 않습니다.^^ 다만 3번 중복되면!! 배열에 2번 들어가겠군요.

lovethecorners의 이미지

예, 그런데 3번 중복될일은 없을것 같습니다. 참 perl 어떻게 보면 어렵기도 하고 쉽기도 하고, 생각하기 나름인것같은데, 생각잘하기가 가끔어렵습니다.

==
more than one way to do it
말로만 블로거: http://gojdweb.egloos.com

기노욱의 이미지

#!/usr/bin/perl
@arr1 = ( 1, 2, 3, 3, 4, 5 );
@arr2 = ( 1, 2, 3, 4, 5, 5 );
@arr3 = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11 );
 
 
for(1..3)
{
	if($_ == 1)
	{
		%DEST = map{$_, 1} @{"arr".$_};
		next ;
	}
 
	for my $in(@{"arr". $_})
	{
		delete $DEST{$in} if($DEST{$in} != 1);
	}
 
}
 
print sort {$a <=> $b} keys  %DEST;

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.