티스토리 뷰
5장까지 총 23개의 연습문제가 있습니다. 이 중 한 문제를 골라 풀이과정을 작성해 주세요.
연습 문제 22 (p223)
입력 칸에 들어온 문자열 값을 검증
하고 18에서 150사이의 정수로
바꿔야 하는 상황이다.
전체 변환은 다음과 같다.
문자열 입력 내용
-> [검증 및 변환]
-> {:ok, 값} | {:error, 원인}
"검증 및 변환"을 구성하는 개별 변환들을 작성
하라.
풀이 과정
위 소스를 검증과 변환 작업을 거치는 소스로 변환하면, 아래와 같다.
문자열 입력 내용
-> [문자에서 정수로 변환이 가능한지 검사]
-> [문자에서 정수로 변환]
-> [18 ~ 150 사이의 정수인지 검사]
-> {:ok, 값} | {:error, 원인}
List<Integer> nums = strs.stream()
.filter(str -> isToNumber(str))
.map(str -> Integer.valueOf(str))
.filter(num -> isSatisfy(num))
.collect(Collectors.toList());
- 문자열이 정규표현식(
^[^0]\d*
) 등을 이용하여, 정수로 변환이 가능한지 검사한다.
1.1 정수로 변환이 가능하면 2로 이동
1.2 정수로 변환이 불 가능하다면 {:error, notValid}
- 문자를 정수로 변환(1에서 정수로 변환 가능한 문자를 받았으므로, error 발생 X)
- 변환된 정수가 18 ~ 150 사이의 정수인지 검사한다.
3.1 18 ~ 150 사이의 정수라면 {:ok, value}
3.2 그 밖의 정수라면 {:error, notValid}
'Book > 실용주의 프로그래머' 카테고리의 다른 글
[TIL 7] 실용주의 프로그래머 #7. 코딩하는 동안 (0) | 2022.04.02 |
---|---|
[TIL 6] 실용주의 프로그래머 #6. 동시성 (0) | 2022.03.29 |
[TIL 5] 실용주의 프로그래머 #5. 구부러지거나 부러지거나 (0) | 2022.03.26 |
[TIL 4] 실용주의 프로그래머 #4. 실용주의 편집증 (0) | 2022.03.24 |
[TIL 3] 실용주의 프로그래머 #3. 기본 도구 (0) | 2022.03.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 데이터베이스
- 백준
- 스프링 부트
- 인프런
- 코테
- Algorithm
- kotlin
- 노마드
- Real MySQL
- 정렬
- 리팩토링
- Spring
- 북클럽
- 자료구조
- 파이썬
- 코틀린
- webflux
- 릿코드
- mysql 8.0
- 알고리즘
- Refactoring
- 노마드코더
- leetcode
- spring boot
- MySQL
- 문자열
- 그리디
- 스프링
- 김영한
- 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함