Notice
Recent Posts
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 8장
- inductive step
- N으로 표현
- Wiki
- 0장
- 클린코드
- 문제풀이
- basis step
- 기하학
- 원의 방정식
- 프로그래머스
- mirror
- 백준
- Clean code
- recursion
- BOJ
- 수학
- Repository
- 1011
- 규칙
- dp
- 6장
- 3장
- 재귀
- programmers
- 4장
- 자기호출
- 7장
- 2장
- 1024
Archives
- Today
- Total
LeeA0의 공부 일기
[Clean Code] 2장 - 실습 본문
2장의 내용을 토대로 적지만 예전에 풀은 알고리즘 코드를 개선 시켜보았습니다.
<개선 전>
import java.util.Arrays;
public class Programmers_로또의최고순위와최저순위 {
public static void main(String[] args) {
int[] lottos = { 0, 0, 0, 0, 0, 0 };
int[] win_nums = { 38, 19, 20, 40, 15, 25 };
System.out.println(Arrays.toString(solution(lottos, win_nums)));
}
public static int[] solution(int[] lottos, int[] win_nums) {
int[] rank = { 6, 6, 5, 4, 3, 2, 1 };
int zero_num = 0;
int hit_num = 0;
for (int l : lottos) {
if (l == 0) {
zero_num++;
} else {
if (contain(win_nums, l)) {
hit_num++;
}
}
}
return new int[] { rank[hit_num + zero_num], rank[hit_num] };
}
public static boolean contain(int[] win_nums, int l) {
for (int w : win_nums) {
if (l == w) {
return true;
}
}
return false;
}
}
<개선 후>
import java.util.Arrays;
public class Programmers_로또의최고순위와최저순위 {
public static void main(String[] args) {
int[] lottos = { 0, 0, 0, 0, 0, 0 };
int[] win_nums = { 38, 19, 20, 40, 15, 25 };
System.out.println(Arrays.toString(solution(lottos, win_nums)));
}
public static int[] solution(int[] lottos, int[] win_nums) {
int[] rank = { 6, 6, 5, 4, 3, 2, 1 };
int zero_num = 0;
int hit_num = 0;
for (int lotto : lottos) { // l->lotto
if (lotto == 0) {
zero_num++;
} else {
if (isContainWinNums(win_nums, lotto)) { // contain->isContainWinNums
hit_num++;
}
}
}
return new int[] { rank[hit_num + zero_num], rank[hit_num] };
}
public static boolean isContainWinNums(int[] win_nums, int lotto) {
for (int win_num : win_nums) { // w->win_num
if (lotto == win_num) {
return true;
}
}
return false;
}
}'Java > Clean Code' 카테고리의 다른 글
| [Clean Code] 4장. 주석 (0) | 2021.09.16 |
|---|---|
| [Clean Code] 3장. 함수 (미완) (0) | 2021.09.11 |
| [Clean Code] 2장. 의미 있는 이름 (0) | 2021.08.29 |
| [Clean Code] 1장. 깨끗한 코드 (0) | 2021.08.22 |
| [Clean Code] 0장. 들어가면서 (0) | 2021.08.22 |
Comments