Front-End
프로그래머스 기초트레이닝 5일차 본문
회사일이 요즘 많아져서
일찍 빨리빨리 못올리고 있습니다.
그래도! 꾸준히~ 최대한 하고있습니다요
아쉽게 3분지나서 ...연달아 올린게 아니게 되버렸......다....ㅜㅜ
문제 23. 더 크게 합치기
문제 설명
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
입출력 예
a | b | result |
9 | 91 | 991 |
89 | 8 | 898 |
입출력 예 설명
a ⊕ b = 991 이고, b ⊕ a = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.
a ⊕ b = 898 이고, b ⊕ a = 889 입니다. 둘 중 더 큰 값은 898 이므로 898을 return 합니다.
저의 풀이!
메모
와 우
toString 을 쓰려면 변수에 담거나 arry 거나 boolean 이면 바로 담기는데,
그냥 숫자를 넣으려면 앞에도 괄호에 담아야한다.
(5).toString() 처럼;;
String() 은 괄호안에 그냥 변경하고 싶은 값을 매개변수로 넣어주면된다 ....
그리고 나의 선생님 왈
' 숫자 연산 문제가 나오면 Math메서드를 한번 먼저 생각 해 보는것도 좋습니다! '
그래서 공부하고 Math로 풀어보겠습니다요.
=> 일단 문제를 생각해보자
1번의 식과 2번의 식 중에 더큰값을 리턴하고, 만약 그 둘이 같다면 1번을 내보내라~ 였습니다.
그러면 일단 조건 1( 1번식과 2번식 중에 더 큰값을 리턴)
조건 2 ( 둘이 같다면 그냥 뭐 아무거나 내보내도 노상관 /// 왜냐면 어차피 둘이 같으니까!!! ) 이죠?
자 어떻습니까 더 간결하고, 이해하기 더 편해지지 않았습니까요???
문제 24. 두 수의 연산값 비교하기
문제 설명
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.
입출력 예
a | b | result |
2 | 91 | 364 |
91 | 2 | 912 |
입출력 예 설명
a ⊕ b = 291 이고, 2 * a * b = 364 입니다. 둘 중 더 큰 값은 364 이므로 364를 return 합니다.
입출력 예 #2
a ⊕ b = 912 이고, 2 * a * b = 364 입니다. 둘 중 더 큰 값은 912 이므로 912를 return 합니다.
저의 풀이!
메모
위의 문제와 비슷합니다.
하지만 이번에는 보기좀 편하게 변수에 연산을 담아서 진행했습니다. 훨씬 깔끔하죠!?
문제 25. 홀짝에 따라 다른 값 반환하기
문제 설명
양의 정수 n이 매개변수로 주어질 때,
n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고
n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
입출력 예
n | result |
7 | 16 |
10 | 220 |
입출력 예 설명
예제 1번의 n은 7로 홀수입니다. 7 이하의 모든 양의 홀수는 1, 3, 5, 7이고 이들의 합인 1 + 3 + 5 + 7 = 16을 return 합니다.
예제 2번의 n은 10으로 짝수입니다. 10 이하의 모든 양의 짝수는 2, 4, 6, 8, 10이고 이들의 제곱의 합인 22 + 42 + 62 + 82 + 102 = 4 + 16 + 36 + 64 + 100 = 220을 return 합니다.
저의 풀이!
메모
일단 제 첫 풀이를 보면 굉장히 번잡스럽습니다.
조건을 넣은게 종 3번이나 반복되서 사용되었습니다.
그리고 굳이 for문을 안에 두면서 2번이나 반복할 필요가 없다는걸 선생님께서 조언을 해주셨습니다.
개선된 풀이
=>
어떠신가용 ? 훨씬 깔끔해보이죠 ?
어떤 점이 달라졌냐면,
for문을 제일 밖에 두고 (왜냐하면 반복해서 증감하며 숫자를 보면서 짝수인지 아닌지 어차피 따지게 된다)
안에 조건으로 인해 풀이되도록 했습니다.
그리고 마지막에 return 값으로 짝수면~? 짝수그릇 아니면 홀수! 라는 삼항을 사용했습니다.
Math.pow 메서드는 제곱근 메서드니 한번 사용해봐도됩니다!
아니면 뭐 i ** 2 이렇게 진행해도 괜찮습니다 ㅎㅎ
'알고리즘' 카테고리의 다른 글
프로그래머스 기초트레이닝 7일차 (1) | 2023.08.15 |
---|---|
프로그래머스 기초트레이닝 6일차 (4) | 2023.08.14 |
프로그래머스 기초트레이닝 4일차 (1) | 2023.08.10 |
프로그래머스 기초트레이닝 3일차 (0) | 2023.08.07 |
프로그래머스 기초트레이닝 2일차 (2) | 2023.08.05 |