안녕하세요
앵과장입니다.
이거 굳이 -0- 이런 말 안 해도 되는데 일단 제가 하는 게 항상 최선에 방식도 아니고 더 좋은 개발 방법이나 잘하시는 분들이 있을 겁니다.
저도 10년 차 이상 개발자이지만 이런 거 해본 적도 없는 안타까운 직장인이라 공부한다는 접근이니 소스에서 좀 더 좋은 방법이 있다면
댓글로 추가해주시면 저도 공부하면서 많은 도움이 될 것 같습니다.
모든 문제풀이는 kotlin으로 진행하겠습니다.
Java 만 하다 보니 좀 다른 언어로 진행해보고 싶었고 앞으로 kotlin으로 개발을 해보고 싶다는 생각도 들어서 알고리즘부터라도 진행해보도록 하겠습니다.
문장(문자열) 과 단어
오늘은 문장 과 단어를 처리하는 문제를 풀어보도록 하겠습니다.
문장 그리고 단어
단어들이 여러 개 있는 형태를 문장(문자열) 그리고 그 문장에 한 단어씩 들어있는걸 단어라고 합니다.
저는 이런 질문에 대한 말도 이해가 잘 안 가더라고요
오늘의 문제
문장에서 가장 긴 단어를 출력해보세요.
가장 긴 단어가 여러 개라면 가장 첫 번째 담긴 단어를 반환해주세요
문장에는 영어 알파뱃으로 이루어지며 문장 속 단어는 공백으로 구분됩니다.
"Im going out of the company today"
개발을 오래 하다 보니 참
안 좋은 습관이라는 것이 너무 생각이 많아진다는 겁니다.
이렇게 까지 해야 될까요? 지금까지 해왔던 수많은 들은 것들이 뭘 써야 하는지는 알지만 굳이 여기서 이런 걸...이라는 생각을
개발하고 나서 알았습니다.
@Test
fun 테스트(){
var a:String = "Im going out of the company today";
var answer = "";
var queue: Queue<String> = LinkedList<String>()
var strArray = a.split(" ")
var bigStrLength:Int = 0
for (item in strArray) {
if(item.length > bigStrLength){
bigStrLength = item.length;
}
}
for (item in strArray) {
if(item.length == bigStrLength){
queue.add(item)
}
}
if(queue.isNotEmpty()){
answer = queue.elementAt(0)
}
System.out.println(answer)
}
몇 번 풀다 보면 아하라는 생각이 옵니다.
지금 현재 난이도가 1,2,3이라면 1이라는 등급으로 진행이 되고
문제 해결에서 가장 중요한 포인트는 문자를 처리하는 방법과 버퍼라는 곳에 초점이 맞춰져 있는 것 같다고 말입니다.
아마 처음 풀다 보면 생각만큼 바로 풀리지 않을 수 있습니다.
저도 이런 형태 문제를 풀어본 적이 거의 없다 보니 오래 걸렸는데 kotlin으로 하다 보니 syntax를 찾아가는 과정도 존재하였습니다.
역시 새로운 것을 하는 것은 두려움보다는 재미가 먼저 느껴지네요
그래서 저의 이상형이 처음 본 여자인가 봅니다. +_+
다시 소스로 돌아와서 담백하게 바꿔볼까요?
불필요한 것들은 지우고 문제에 필요한 부분만 담아보도록 하겠습니다.
fun solution(a: String): String {
var answer = ""
var temp: String
var pointer = 0
do {
var next = a.indexOf(" ", pointer)
temp = if (-1 < next) {
a.substring(pointer, next)
} else {
a.substring(pointer)
}
if (answer.length < temp.length) {
answer = temp
}
pointer = next +1;
} while (-1 < next)
return answer
}
자 아까보다 문제에서 필요한 부분만 담으려고 노력하였습니다.
처음에는 그냥 생각나는 대로 문제를 풀어보고 그다음에는 내가 지금까지 해왔던 것들에서 불필요한 부분들을 제거해나가는 과정으로 접근해보시기 바랍니다.
오늘도 좋은 하루 되시고
좋은 회사 취직할 수 있도록 파이팅하세요
단계별 알고리즘이 궁금하다면 다음을 클릭해주세요
'프로그래밍언어 > 알고리즘' 카테고리의 다른 글
알고리즘 5편 특정 문자열 찾기 및 최소거리 탐색 코틀린(kotlin) 으로 시작하는 문제해결방법 (0) | 2021.09.16 |
---|---|
알고리즘 4편 정규표현식 말고 아스키 코드로 문자 숫자 필터링하기 코틀린(kotlin) 으로 시작하는 문제해결방법 (0) | 2021.09.14 |
알고리즘 3편 Char 문자열 뒤집기 한판 코틀린(kotlin) 으로 시작하는 문제해결방법 (0) | 2021.09.13 |
알고리즘 1편 어디부터 시작하면될까요? 점진적인 시작 나쁜머리를 굴려보자 개발자 면접 준비기초 (0) | 2021.09.12 |
알고리즘 0편 시작 동기부여! 내가 누군지 아니 개발자다! 노예가 아니구! 개발자 면접 준비 기초 (0) | 2021.09.11 |