2014년2월7일 - codeport/scala GitHub Wiki

  • 30분 정도 Programming in Scala 책
  • 나머지 시간에는 짝 프로그래밍으로 코딩 연습을 합니다. 이번에는 URI Decoding ( http://algospot.com/judge/problem/read/URI) 문제를 풀어보기로 했습니다.

체크인

  • JY
  • 배부르다. 먹고 잤다. 소화가 잘 안되고 더부룩하다.
  • 잘 푸는 거. 힐링.
  • YH
  • 덥다
  • 명절때 잘 쉬어서 좋다. 오랫만에 푹 쉬었다.
  • 오늘 문제는 풀 수 있을 것 같다.
  • SK
  • 행복하고 반갑다.
  • 잘 지내고 있다. 회사 잘 다니고 특별한 일은 없었다. 폭풍전야의 고요함.
  • 생각했던 것보다 분위기가 너무 좋아서 이미 기대한 바를 다 얻었다.
  • JS
  • 기분좋다. 푹 잠을 자서.
  • 결혼기념일 사흘 지났고 내일 눈 온다는데 울진으로 갈려고 하는데 운전 잘 할 수 있을 지 걱정. 대게를 먹겠다
  • 빨리 끝날 것 같으니 맥주한잔 기대.
  • HT
  • 인터넷 모뎀이 전기가 나가서 인터넷 안되는 세상에 살아서 갑갑했다.
  • 오늘 문제가 모처럼 풀 수 있을 것 같은 느낌! 이클립스도 깔았다!
  • SJ
  • 오랫만에 설 끝나고 스터디 나와서 긴장도 되고 재미도 있을 것 같다.
  • 오늘은 이클립스의 힘을 볼 수 있길 기대한다.
  • SK
  • 오랫만에 뵈어서 기분이 좋다
  • 잉여잉여하게 지내는 중. 할 일을 다 미루고 있어서.
  • 문제를 빨리 풀 수 있을 거라 기대중.
  • WS
  • 주말이 다가와서 매우 좋다
  • 요번주엔 별 특별한 일이 없어서 마음편히 지냈다
  • 오늘은 문제를 풀고 갔으면 좋겠다.

회고

  • JY
  • 창우님이 와서 좋았다
  • 둘이 푸니까 재밌다. 문제가 쉬워서
  • 스칼라로 알고리즘 푸는 게 좀 쉽지 않다
  • YH
  • 페어 프로그래밍 하면서 많이 배울 수 있어서 좋았다
  • 런타임에러 못잡은 게 아쉽다
  • SK
  • 즐겁다 문제가 쉬울 때 나온 게 탁월한 선택
  • 알고스팟 사이트에서 컴파일 잘 되면 좋겠다 대체할 수 있는 곳이 있는지.
  • JS
  • 다양한 풀이를 여러 사람 코드들 볼 수 있어서 좋았다
  • 특별히 아쉬운 게 없었다.
  • HT
  • 같이 페어한 분이 많은 걸 알려주셔서 여러 시도를 해 볼 수 있어서 좋았다
  • 슬라이딩 같은 걸 써서 해보는 걸 숙제로.
  • SJ
  • 아쉬운 점이 없다!
  • 문제가 쉬워서 여러 방법을 시도하고 코드도 많이 볼 수 있어서 좋았다
  • WS
  • 분위기가 밝고 화기애애해서 좋았다
  • 문법이 아직 약해서 생각 표현을 잘 못하는 게 아쉽다
  • CW
  • 페어 프로그래밍 해보는 게 처음인데 신기하다
  • 다음주에도 꼭 나와서 재밌게 공부해보겠다
  • 준비를 하나도 안했지만 문제가 쉬운 편이라 다행이다.
  • SK
  • 문제 쉬운 거 선택한 게 수준에 맞고 좋았다
  • 제대로 안 되는 케이스를 생각 안해본 게 아쉽다
object Main extends App {
  def read = Console.readLine.trim
  (0 until read.toInt).map { _ =>
    UriDecoding.decode(read)
  } foreach println
}

object UriDecoding {

  val map = "014589a".map("2" + _).zip(" !$%()*".map(_.toString)).toMap

  def decode(input: String): String = {
    val s = input split '%'
    s.head ++ s.tail.map(_ splitAt 2).map {
      case (pre, body) => map.getOrElse(pre, '%' + pre) ++ body
    } mkString
  }
}