Sparta/What I Learned

22.12.21

코딩하는 또롱이 2022. 12. 21. 20:37
🚨 Arrays.stream(array)

배열을 스트림으로!
제일 하단 url에 있는 내용이다. 더 자세한 내용은 링크 따라 가보기!

역시나 같은 스터디 조원분이 알려준 신박한 풀이법!!

내가 코딩을 하면서 느낀 점은 나에게 있어 배열이 너무 어려워!!!!😭

이해가 될 듯 말 듯 하면서 감이 전혀 잡히지 않는다는 것이다.  흑흑😥

 

근데 스터디 분들이랑 개념부터 차근차근 ? 까진 아니지만 내가 잘못 이해하고 있는 부분이나 조금 더 심화되는 부분, 이렇게 응용하면 좋을 것 같다는 조언들까지 받게 되면서 떨어졌던 흥미가 다시 붙기 시작했다. 사실 사랑니 때문에 이틀을 통째로 빠지면서 슬럼프 아닌 슬럼프도 왔고, 이해가 안되니까 뭐부터 해야할지 감도 안오고 하기 싫어졌었던게 사실이다. 그런데 이렇게 하면서 점점 다시 흥미를 붙이게 되서 정말 너무나 다행이다. 사랑해요 우리 스터디🫶

 

코딩테스트 연습 - 문자열 다루기 기본

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

입출력 예
s return
"a234" false
"1234" true
 
class Solution {
    public boolean solution(String s) {
        // Integer num = Integer.valueOf(s);
        // if(num / num == 0){
        //     return true;
        // }else{
        //     return false;
        // }

        Integer num;
        try {
            num = Integer.valueOf(s);
            return true;
            }
        } catch (NumberFormatException e){
            num = 0;
            return false;
        }
    }
}

처음에는 주석처리 한 대로 단순하게 생각했다. 숫자가 아닌 문자가 들어가있으면 자기자신을 자기자신으로 나눴을 때 안 나뉘어 질꺼니까 false 반환하면 되겠지? 했는데 웬걸,,,? NumberFormatException이 나타났다. ㅋㅋㅋㅋㅋㅋㅋ

 

아래 코드로 돌렸더니 30개의 input 중에 4개가 실패 뜨는 것이다... 그래서 tlqkf? 뭐지? 이러고 다시 보니까 문제에 함정이,,,,,,,!!!!!!

 

내가 쓴 최종 정답 코드

더보기
class Solution {
    public boolean solution(String s) {
        // Integer num = Integer.valueOf(s);
        // if(num / num == 0){
        //     return true;
        // }else{
        //     return false;
        // }

        Integer num;
        try {
            if (s.length() == 4 || s.length() == 6){
                num = Integer.valueOf(s);
                return true;
            }else{
                return false;
            }
        } catch (NumberFormatException e){
            num = 0;
            return false;
        }
    }
}

헤헤 얏호 내가 해냄!

신박한 답안 코드

더보기
class Solution {
    public boolean solution(String s) {
        if (s.length() == 4 || s.length() == 6) return s.matches("(^[0-9]*$)");
        return false;
    }
}


내가 쓴 코드는 현업에서 지양하는 코드라고 한다.... 따흐흑 바흐흑,,,,,

 

 

 

코테 풀면서 헷갈리거나 기억 안 나서 찾아본 블로그

 

코드 차차님 블로그 진짜 짱 좋음!!!! 

 

Java - 문자열(String)에서 숫자(int)만 추출하는 방법

문자열(String)에서 숫자(int)만 추출하는 방법 여러가지 방법이 있습니다. 정규표현식(regex)를 사용하거나, for 또는 Stream을 사용하여 구현할 수 있습니다. 예제 코드와 함께 구현 방법을 알아보겠

codechacha.com

이건 맨 위에 내용이랑 관련된 스트림 블로그! 알못인 나도 쉽게 이해할 수 있어서 너무 좋았다❣️😍

 

07-06 함수형 프로그래밍

자바는 Java 8 버전부터 함수형 프로그래밍을 지원하기 위해 람다(Lambda)와 스트림(Stream)이 도입되었다. 람다와 스트림을 사용하면 요새 유행하는 함수형 프로그래밍 …

wikidocs.net

'Sparta > What I Learned' 카테고리의 다른 글

22.12.23  (0) 2022.12.26
22.12.22  (1) 2022.12.22
22.12.20  (1) 2022.12.21
22.12.19  (0) 2022.12.21
22.12.17  (0) 2022.12.21