일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pyenv
- codewars
- flake8
- goalng
- opensouce
- 코로나백신
- 독후감
- Lint
- python
- 글쓰기가필요하지않은인생은없다
- 규칙없음
- loadimpact
- typevar
- 오큘러스퀘스트2
- printer_helper
- pep8
- vscode
- codewar
- conf
- maxlinelength
- GlobalInterprintLock
- springboot
- httppretty
- Golang
- Algorithm
- ProxyServer
- 조엘온소프트웨어
- 유닉스의탄생
- restfulapi
- organizeImports
- Today
- Total
일상적 이야기들.
codewar: Find the missing letter 본문
문제
- https://www.codewars.com/kata/5839edaa6754d6fec10000a2
문제 풀이:
- 언어는 Java로 풀었습니다.
- 배열에는 순차적으로 알파벳이 들어온다. 그러나 중간에 빠진 문자열이 존재한다.
-- 배열의 시작을 0생각을 하면, "0, 1, 2, 4, 5"로 변경해서 생각할 수 있고, 빠진 숫자는 "3" 이라는 것을 알 수 있다.
- Char에 대한 이해.
- Char는 '하나의 문자'를 의미하는 Type이다. 이 정보는 우리가 보기 편한 정보고 실질적으로 메모리상 / 컴퓨터상으로는 숫자로 저장이 된다. 그리고, 뿌려줄 때는 '문자'로 출력이 되는 것이다.
- 'a' 의 문자는 Ascii 코드 숫자 '61' 에 해당하는 값을 가지고 있다. 'b'는 '62'.
- 그렇기에 'b' - 'a' 의 계산을 할 시에는, Ascii 코드 숫자로 계산이 되어 결과로 Int형 1이 나오게 된다.
- 이를 통해서, '배열 내 n번째 element - 첫번째 element' 의 값은 n 이 나와야하는 것을 알 수 있다. ( 다른 말로 표현을 하면, 첫번째 element + n ==> n번째 element 이다. )
- char[] array = new char[] { 'a', 'b', 'c', 'd', 'f' }
- example.
- array[1] -array[0] --> 'b' - 'a' --> 62 - 61 : 1
- array[2] - array[0] --> 'c' - 'a' --> 63 - 61 : 2
- array[n] - array[0] --> ??? - 'a' --> ??? - 61 : n
- 그렇기에 For문을 통해서 array의 1번째부터 차례대로, 첫번째 문자열과 차이를 계산하고 n번째의 문자열이 나오지 않는다면, 빠진 문자로 판단하고 그 문자를 return 시켜준다.
public class Kata
{
public static char findMissingLetter(char[] array)
{
char start_char = array[0];
char result = ' ';
for(int i=1; i<array.length; ++i)
{
char current_char = array[i];
if( current_char - start_char != i )
{
result = (char)(start_char + i);
break;
}
}
return result;
}
}
'프로그래밍 > 알고리즘 문제풀이' 카테고리의 다른 글
codewar: Errors: histogram (0) | 2019.06.21 |
---|---|
codewar: Scalling Squared Strings. (0) | 2019.06.18 |
codewar: RemoveString Spaces (0) | 2019.06.18 |
codewar: Alphabet war (0) | 2019.06.12 |
codewar: Beginner - Lost Without a Map (0) | 2019.06.12 |