// 내 풀이 JAVA
class Solution {
public int solution(int angle) {
int answer = 0;
if ( 0 < angle && angle < 90 ) {
answer = 1;
} else if ( angle == 90) {
answer = 2;
} else if ( 90 < angle && angle < 180) {
answer = 3;
} else {
answer = 4;
}
return answer;
}
}
// 다른 사람의 풀이 JAVA 삼항연산자 이용
class Solution {
public int solution(int angle) {
return angle == 180 ? 4 : angle < 90 ? 1 : angle == 90 ? 2 : angle > 90 ? 3 : 0;
}
}
삼항연산자를 사용해볼 생각은 하기는 해봤는데 오히려 가독성이 떨어지는 것 같다... 조건이 3개 이상 넘어가면 기본 if문을 사용하는게 더 좋아보인다.
// 다른 사람의 풀이 python
def solution(angle):
answer = (angle // 90) * 2 + (angle % 90 > 0) * 1
return answer
언제봐도 python은 참 대단한 언어같다 ... 항상 JAVA로 풀고 python은 어떻게 풀었나 보는데 볼때마다 너무 짧고 깔끔하게 해결이 되어서 놀랍다...😮
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=2; i<=n; i+=2) {
answer += i;
}
return answer;
}
}
문제에서 정수 n이 주어질 때, n 이하의 짝수를 모두 더한 값을 return을 하기를 원했으니까
처음부터 i=2를 넣고 2씩 n이 될때까지 +2를 증가시키면 n이하의 짝수만 i에 출력될테니 그 출력된 값들을 answer에 더하면 된다!!!!
// 다른 사람의 풀이 python
def solution(n):
return 2*(n//2)*((n//2)+1)/2
파이썬은 외계인이 만든 언어인건가.........
// JAVA 내가 쓴 풀이
class Solution {
public double solution(int[] numbers) {
double answer = 0;
for(double d : numbers){
answer += d/numbers.length;
}
return answer;
}
}
```java
// JAVA 다른사람의 풀이
import java.util.Arrays;
class Solution {
public double solution(int[] numbers) {
return Arrays.stream(numbers).average().orElse(0);
}
}
stream
도 처음보고 orElse
도 처음 보는데 아무튼 어썸하다... 👀!!! 추가로 공부해보기
// 다른 사람의 풀이 python
import numpy as np
def solution(numbers):
return np.mean(numbers)
// JAVA 내가 쓴 풀이
class Solution {
public int solution(int n, int k) {
return (n*12000)+((k*2000)-(n/10)*2000);
}
}
// JAVA 내가 쓴 풀이
class Solution {
public int solution(int n) {
int answer = 0;
if ( n >= 1 && n <= 100) {
if ( n%7 == 0) {
answer = n / 7;
} else {
answer = (n/7)+1;
}
}
return answer;
}
}
// JAVA 다른 사람이 쓴 풀이
class Solution {
public int solution(int n) {
return n%7 == 0 ? n/7 : n/7+1;
}
}
조건이 적으면 삼항연산자 쓰는게 깔끔하다고 그래서 써보고 싶었는데 조건식을 이렇게 적으면 되는구나.. 나는 문제에 나와있는 1 ≤ n ≤ 100 를 조건식으로 사용했는데 1개는 맞고 나머지 2개는 틀리다고 나와서 중첩 if문을 사용해서 문제를 풀었다.
answer = ( n >= 1 && n <= 100 ) ? n/7 : n/7+1;
이렇게 썼는데 지금보니까 n%7 의 나머지가 0이면 n/7 일때 1판만 있으면 되고 아닌 경우에 예를 들어서 n=8이면 2판이 필요 이런식으로 사용을 할 수 있겠다..... !!!
// JAVA 다른 사람이 쓴 풀이
class Solution {
public int solution(int n) {
return (n + 6) / 7;
}
}
짧다고 무조건 좋은 건 아니라지만 (n+6)에서 6이 어떤 수를 7로 나누면 나머지가 0부터 6까지만
들어가기 때문에 어떤 수 n에 6을 더한 뒤에 7을 나누면 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 할 수 있다... 인 것 같다. 이건 수학을 잘해야 알 수 있는건가.... 대단하다..... 역시 코드는 답이 없다는 게 맞나보다... 😧
모르는 문제도 아는 문제도 있었다. 아는 문제도 한 번 더 다른 사람들은 어떻게 코드를 작성했나 한 번 더 살펴보고 모르는 문제는 코드가 어떻게 돌아가는 지 분석도 해보고 몰랐던 함수에 대해서 공부해보자!