Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- JoinColumn
- 인텔리제이
- 빈생성안됨
- Error creating bean with name
- REST API 규칙
- jpa에러
- Unsatisfied dependency
- github
- Q 클래스
- git
- 1차캐시
- Filter
- 복합키
- JPA
- spring서버
- JPA주의사항
- ERD 작성
- 스프링 부트 기능
- 스프링부트오류
- jwt메서드
- 최종 프로젝트
- REST란
- queryDSL
- @IdClass
- json
- json gson 차이
- 스프링 부트 공식 문서
- uncheck Exception
- jpa회원가입
- Spring Spring boot 차이
Archives
- Today
- Total
Everyday Dev System
분수의 덧셈 문제 - 개선 본문
코드를 작성한 후에 코드를 줄이거나 더욱 빠르게 할 수 있는 방법을 생각해보았다.
문제점 : 코드를 짜는데 시간이 많이 걸린다..
많이 풀다보면 익숙해지지 않을까?
1. 개선 전의 코드
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int[] answer = {0,0};
int denom, numer = 0;
if(denom1==denom2){
denom = denom1;
numer = numer1 + numer2;
}else {
denom = (denom1*denom2);
numer = (denom1*numer2) + (denom2*numer1);
}
int denom_result = denom;
int numer_result = numer;
for(int i =1; i<=denom; i++){
if(denom%i==0 && numer%i==0){
denom_result = denom /i;
numer_result = numer /i;
}
}
answer[0] = numer_result;
answer[1] = denom_result;
return answer;
}
for문의 초기값을 가장 큰 값으로 주어 -1 씩 값을 변경하며 반복문을 실행하였다.
+1을 통한 반복문보다 -1을 통한 반복문이 수행이 더 빠를 것이라 예상했다.
두 분모의 최대공약수를 찾으면 break문을 통해 for()문을 강제로 빠져나온 후 반환한다.
2. 개선 후의 코드
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int denom = denom1 * denom2;
int numer = (numer1*denom2) + (numer2*denom1);
for(int i = denom ; i>=1; i--){
if(denom%i==0 && numer%i==0){
denom /= i;
numer /= i;
break;
}
}
int[] answer = {numer,denom};
return answer;
}
}
references : https://school.programmers.co.kr/learn/courses/30/lessons/120808
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'have to > 자바 알고리즘' 카테고리의 다른 글
empty()와 isEmpty() 차이 (0) | 2023.11.21 |
---|---|
[level 2] Title: 전화번호 목록 코드 개선:: List -> Set (0) | 2023.11.14 |
문자열 겹쳐쓰기 문제 - 개선 (1) | 2023.10.24 |
문자열 합치기 (0) | 2023.10.24 |
배열 비교하기 (0) | 2023.10.18 |