본문 바로가기

Programing/Algorithm6

[코딩도장] 아마존 입사문제 아마존 면접 문제로 알려진 “그 시간 사무실에 몇 명이 있었나?”를 풀어보았습니다. 문제는 아래와 같습니다. A 사무실에 특정일자의 출퇴근 시간이 기록된 거대한 로그파일이 있다고 한다. 파일의 형식은 다음과 같다.(한 라인에서 앞 부분은 출근시간(HH:MM:SS), 뒷 부분은 퇴근시간이다) 09:12:23 11:14:35 10:34:01 13:23:40 10:34:31 11:20:10 특정 시간을 입력(예: 11:05:20)으로 주었을 때 그 시간에 총 몇 명이 사무실에 있었는지 알려주는 함수를 작성하시오. 기본적으로 두 가지 가정하에 문제를 접근해 보았습니다. 로그 파일에 출근시간은 정렬이 되어 있다. 자정을 넘기지 않고 당일날 퇴근한다. 1번의 경우 가정하지 않더라도 정렬 작업을 수행하면 되지만, 2.. 2017. 2. 4.
[코딩 도장] 넥슨 입사문제 중에서 이번 주는 코딩 도장(http://codingdojang.com/) 사이트에서 넥슨 입사 문제 중 하나로 아래와 같은 문제가 있어 풀어보았다. 어떤 자연수 n이 있을 때, d(n)을 n의 각 자릿수 숫자들과 n 자신을 더한 숫자라고 정의하자. 예를 들어 d(91) = 9 + 1 + 91 = 101 이 때, n을 d(n)의 제네레이터(generator)라고 한다. 위의 예에서 91은 101의 제네레이터이다. 어떤 숫자들은 하나 이상의 제네레이터를 가지고 있는데, 101의 제네레이터는 91 뿐 아니라 100도 있다. 그런데 반대로, 제네레이터가 없는 숫자들도 있으며, 이런 숫자를 인도의 수학자 Kaprekar가 셀프 넘버(self-number)라 이름 붙였다. 예를 들어 1, 3, 5, 7, 9, 20, 3.. 2017. 1. 22.
Levenshtein distance Levenshtein Distance란? wikipedia에서는 아래와 같이 정의하고 있다. Ininformation theoryandcomputer science, theLevenshtein distanceis astring metricfor measuring the difference between two sequences. Informally, the Levenshtein distance between two words is the minimum number of single-character edits (i.e. insertions, deletions or substitutions) required to change one word into the other. It is named afterVla.. 2017. 1. 10.
[코딩 도장] 1에서 10000까지 숫자 8 갯수 세어보기 코딩 도장(http://codingdojang.com/) 사이트에서 구글 입사 문제 중 하나로 아래와 같은 문제가 있어 풀어보았다. 1부터 10000까지 8이라는 숫자는 총 몇 번 나오는가? 8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다. (예를 들어 8808은 3, 8888은 4로 카운팅 해야 한다.) 문제에 나오는 숫자 정보를 상수가 아닌 변수로 가정했다. 시작 숫자: 1(from) 끝 숫자: 10000(to) 찾고자 하는 숫자: 8(findingNum) 일단 모든 수에 대해서 찾고자 하는 숫자(이하 findingNum)가 몇 개 있는지 카운팅 해 보는 방법으로 접근해 보았다. from ~ to 까지 모든 수를 반복하여 체크한다. 체크 대상 숫자를 .. 2017. 1. 4.