일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 칭기즈칸
- 초원
- 월드프렌즈 ICT 봉사단
- 한 줄로 서기
- 코로나
- 헬스
- 아부다비
- 백준
- 여행
- algorithm
- Python
- 교환학생
- 월드프렌즈
- 테를지
- 울란바토르
- 몽골 헬스장
- 몽골요리
- 몽골
- 소프트웨어 아카데미
- SWEA
- 알고리즘
- 테를지국립공원
- ICT봉사단
- 게르
- 독일
- 몽골 고기
- 담슈타트
- 파이썬
- 칭기스칸 동상
- LG글로벌챌린저
- Today
- Total
목록IT/알고리즘 (95)
맛있는물회
문제 조건 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 있다. 이 편집기가 지원하는 명령어는 다음과 같다. LDBP $ 커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨) 커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 무시됨) 커서 왼쪽에 있는 문자를 삭제함 (커서가 문장의 맨 앞..
생각한 아이디어 오늘 놀라게 되었던 math 모듈의 comb perm factorial gcd 에 대하여 알아보자. 먼저 comb는 조합의 개수를 나타내는 것이다. 즉, 이항계수의 값을 바로 알아낼 수 있다. nCk 일때 fac(n)//fac(n-k)//fac(k)의 값을 귀찮게 factorial계산도 필요없고 나눗셈도 필요없이 바로 알 수 있다는 것이다... 아주 유용한 모듈이다!! (아마 속도는 느리겠지만,,,) 비슷한 원리로 perm은 순열의 개수를 바로 리턴해준다!! factorial은 다들 알고 있듯이 파라미터 n의 factorial 값을 리턴해준다. 이제 귀찮게 재귀함수 짜고 그럴필요가 없다! 제일 놀랐던 것 gcd!! 최대 공약수 값을 바로 리턴해준다! 최대공약수를 안다면 gcd를 이용해서 ..
문제 조건 2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오. Input 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. Output 첫째 줄에 주어진 수를 8진수로 변환하여 출력한다. 생각한 아이디어 흐음,,, 좀 이상하다 아주 간단하게 문자열 계산하는 방식으로 짰는데 계속 시간초과가 발생한다. oct라는 함수를 사용해서 아주 파이썬스럽게 해결할 수는 있었지만,,, 문자열 다루는 함수가 왜 시간초과가 발생할까? 아까 1, 2, 4 곱하는 형식을 사용해봤는데도 시간초과가 발생했따,, 소스코드 def change(q): q,r = divmod(q,8) if q == 0: return str(r) else: return change(q) + str(r) de..
문제 조건 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 [img12.png, img10.png, img2.png, img1.png]일 경우, 일반적인 정렬은 [img1.png, img10.png, img12.png, img2.png] 순이 되지만, 숫자 순으로 정렬된 [img1.png, img..
문제 조건 이번 추석에도 시스템 장애가 없는 명절을 보내고 싶은 어피치는 서버를 증설해야 할지 고민이다. 장애 대비용 서버 증설 여부를 결정하기 위해 작년 추석 기간인 9월 15일 로그 데이터를 분석한 후 초당 최대 처리량을 계산해보기로 했다. 초당 최대 처리량은 요청의 응답 완료 여부에 관계없이 임의 시간부터 1초(=1,000밀리초)간 처리하는 요청의 최대 개수를 의미한다. Input solution 함수에 전달되는 lines 배열은 N(1 ≦ N ≦ 2,000)개의 로그 문자열로 되어 있으며, 각 로그 문자열마다 요청에 대한 응답완료시간 S와 처리시간 T가 공백으로 구분되어 있다. 응답완료시간 S는 작년 추석인 2016년 9월 15일만 포함하여 고정 길이 2016-09-15 hh:mm:ss.sss 형..
문제 조건 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, 라디오 등에서 나온 음악에 관해 제목 등의 정보를 제공하는 서비스이다. 네오는 자신이 기억한 멜로디를 가지고 방금그곡을 이용해 음악을 찾는다. 그런데 라디오 방송에서는 한 음악을 반복해서 재생할 때도 있어서 네오가 기억하고 있는 멜로디는 음악 끝부분과 처음 부분이 이어서 재생된 멜로디일 수도 있다. 반대로, 한 음악을 중간에 끊을 경우 원본 음악에는 네오가 기억한 멜로디가 들어있다 해도 그 곡이 네오가 들은 곡이 아닐 수도 있다. 그렇기 때문에 네오는 기억한 멜로디를 재생 시간과 제공된 악보를 직접 보면서 비교하려고..
문제 조건 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할 경우, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, … 순으로 숫자를 말하면 된다. 한편 코딩 동아리 일원들은 컴퓨터를 다루는 사람답게 이진수로 이 게임을 진행하기도 하는데, 이 경..