String reverse palindrome palindrome command line palindrome if

  • Slides: 21
Download presentation

String 메소드 reverse 활용: palindrome 검사 • palindrome: 뒤집어도 똑같은 문자열. 예: 바라바, 도레미레도

String 메소드 reverse 활용: palindrome 검사 • palindrome: 뒤집어도 똑같은 문자열. 예: 바라바, 도레미레도 • 사용자가 command line에 입력한 문자열이 palindrome인지 판정 • if ARGV[0] == ARGV[0]. reverse • print "palindrome입니다. " • else • print "palindrome 아닙니다. " • end #방법 1 • print ( ARGV[0] == ARGV[0]. reverse ) ? “Yes” : “No” # 방법 2 • ~? A: B • ~가 참이면 A로, ~가 거짓이면 B로 evaluate되는 expression

Hash 기초 • 학생 이름을 입력하면 점수를 알려주기 • data = {} #비어 있는

Hash 기초 • 학생 이름을 입력하면 점수를 알려주기 • data = {} #비어 있는 Hash를 만듦. data = Hash. new와 동일. • File. open(ARGV[0], "r: UTF-8"). each do |line| • name, score = line. chomp. split(", ") #line을 쉼표로 구분 • data[name] = score #data에 name-score라는 key-value 쌍을 추가 • # data[name]은 data Hash에 들어 있는 key name과 연결된 • # value를 반환함. • end • print (data. has_key? ARGV[1] ) ? data[ ARGV[1] ] : "이름이 없습니다. "

파일들 join하기 • • • • joined = Hash. new #join한 결과는 { key

파일들 join하기 • • • • joined = Hash. new #join한 결과는 { key => [각 파일의 나머지 필드들을 요소로 갖는 Array] } ARGV. each do |fn| #사용자가 제공한 파일이름들에 대해 File. open(fn, "r: UTF-8"). each do |line| #파일을 열어 각 라인에 대해 key, residue = line. chomp. split(", ", 2) #쉼표를 구분자로 split하되, 2개로만 구분 joined[key] ||= Array. new #short-circuiting을 이용한 ||= idiom joined[key] << residue #key와 연결된 Array에 residue를 추가함. end joined. sort. each do |key, residues| #joined를 key로 소팅 #residues: 각 파일의 residue들로 이루어진 Array임 print key #key 출력 residues. each do |residue| #residues Array의 각 요소 residue에 대해 print ", ", residue #쉼표와 residue 출력 end print "n" #하나의 key에 대한 value의 출력이 끝나면 줄바꿈문자 출력 end