일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Linux
- programmers
- 튜토리얼
- 문제풀이
- Java
- Python
- go
- scala
- codewars
- DP
- 스칼라
- OOM
- redis
- 동적프로그래밍
- 알고리즘
- 자바
- docker
- 프로그래머스
- boj
- 파이썬
- golang
- Go언어
- zookeeper
- HBase
- dynamic programming
- 코드워
- 리눅스
- gradle
- 주키퍼
- leetcode
- Today
- Total
목록codewars (5)
파이문
Triangle number check 항상 파이썬으로 풀지만 오늘은 자바를 공부할 겸 자바로 풀어보았습니다. 입력 받은 n이 삼각형이 되는 수인지 판별 하면 되는 문제였는데요, 여기서 삼각형이란 삼각형 모양을 의미합니다. 삼각수? 정도로 생각하면 될 것 같아요. 운이 좋게도 바로 얼마전 우연히! 프로젝트 오일러 41번이였나, 42번 문제를 보았는데 삼각수가 나왔었거든요. 그래서 쉽게 삼각수 문제라는 것을 유추해내고 공식만 대입하였습니다. 이는 n번 째의 삼각수는 N 이라는 의미입니다.즉 첫 번째 삼각수는 1, 두 번째 삼각수는 1-2-3이니 2 * (2+1)/2 해서 3 (마지막 수죠), 세 번째 삼각수는 6(3 * 4 / 2)이 되는 거죠. 다시 말하면 순서는 n이고 삼각수는 N이 되는 것이죠. 그래..
Consecutive strings 이 전까지의 문제가 그냥 믹스 커피였다면 이 문제는 카누 정도 되더군요. 일단 함수의 첫 번쨰 입력으로 연속된 문자열이 담겨 있는 리스트가 오게 됩니다. (다른 언어에선 배열) 그리고 두 번째 입력으로 int형(K) 숫자가 오게 되는데요. 이 두 값을 받아서 연속된 K개의 문자열이 가장 길어지는 경우를 return 해야 합니다. 말로는 어려운데 예를 들면 다음과 같습니다. ["a", "bc" , "def"] , 2 가 들어오게 되면 "bc" , "def" 두 개의 값의 총 길이는 5입니다. 이는 ["a", "bc" , "def"] 에서 2개를 골라 만들 수 있는 가장 긴 문자열 입니다. 단, 앞서 말했듯이 연속되어야 합니다. 그래서 예제로 테스트 해볼 수 있는 다음과 ..
Valid Phone Number 입력 받은 문자열이 핸드폰 번호라고 판단할 수 있는지에 관한 문제였습니다. "지역번호 앞 번호-뒷 번호" 순이면 옳다고 판단할 수 있습니다. (단, 문제에도 적혀 있듯이 지역번호 다음에 오는 닫힌 괄호 뒤에 띄어쓰기가 꼭 있어야 합니다.) 어렵지 않게 그냥 쉽게 생각해서 풀기로 하였습니다. 띄어쓰기를 구분으로 지역번호와 전화번호로 나누어지고 이 때 길이가 2여야 하며 전화번호는 다시 하이픈을 기준으로 길이가 2가 된다면 옳은 전화번호로, 판단하기로 하였습니다. 하지만 에러가 나더군요. 생각해보니 하이픈이 숫자 맨 앞에 오는 경우도 단순히 길이를 2로 판단해서 True를 리턴한다는 것을 알았습니다. 띄어쓰기도 마찬가지였습니다. (예제 입력 값에 알파벳은 들어가지 않는다고 ..
Replace With Alphabet Position 알파벳으로 이루어진 문자열을 받고, 거기에 해당하는 순서 (a라면 첫번째 알파벳이므로 1)를 리턴하는 문제였습니다. 단, 알파벳이 아닌 (쉼표와 같은) 문자는 무시해야 하였습니다. 우선 전체 문자열을 모두 대문자로 바꾸고 아스키 값으로 다시 변환한 후 특정 숫자 (64)를 빼어 순서를 구하려 하였습니다. 그런데 테스트코드에서 에러가 나, 무슨 일인가 봤더니 결과 값이 리스트가 아니라 문자열로 되어 있어 리스트를 문자열로 바꿔주는 작업을 한 번 더 진행하였습니다. def alphabet_position(text): text = [ord(x) - 64 for x in text.upper() if x > 65] word_list = filter(lambd..
Find The Parity Outlier 주어진 리스트에서 홀수만 있다면 짝수를, 짝수만 있다면 홀수를 리턴하는 문제였습니다. 최근에 리스트 컴프리핸션에 대해서 배웠기에 이를 최대한 활용하려 하였습니다. 저의 목표는 최대한 pythonic하게, 가독성 따위는 전혀 없이 짧게 작성하는 것이었습니다. 그런데 생각만큼 잘 안되더라구요. 역시 고기도 먹어본 놈이 먹는다고, 더 많이 써보고 더 공부해봐야 할 것 같아요. 결국 일단 답만 돌아가게 작성하고 다른 사람 코드를 보는 방향으로...ㅠㅠdef find_outlier(integers): even_list = map(lambda x: x % 2, [x for x in integers]) even = even_list.count(0) odd = even_lis..