TIL/Programers

TIL/Programers

[JAVA] 주사위 게임2 -- Stream, distinct(), set

Q. 1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다.세 숫자가 모두 다르다면 a + b + c 점을 얻습니다.세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다.세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다.세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.  int answer = 0; int first = a + b + c; int second = (a*a) ..

TIL/Programers

[JAVA] 등차수열 특정 항 합

- 수학적 사고가 코드를 간결하게 만든다. 수학을 공부해야 할 이유가 있는거다. . . 후.    Q )두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요. [Java]public int solution(int a, int d, boolean[] included) { int answer = 0; for (int i=0; i   for(int i = 0; i - 수학적 사고를 하자..  return IntStream...

TIL/Programers

[JAVA] 코드 처리하기 -- length(), charAt(), isEmpty()

- 코드를 간결하게 줄이는 연습을 하자. [Java]public String solution(String code) { String ret = ""; int mode = 0; for (int i = 0; i 야근한 머리로는 이런거밖에 못짜요 잉 힝   StringBuilder answer = new StringBuilder(); int mode = 0; for (int i = 0; i  - StringBuilder 를 써서 성능 챙겼고- 중언부언 하지 않고 깔끔했다..   [Python]return "".join(code.split("1"))[::2] or "EMPTY"?? 이게 뭐야 1. code 문자열을 문자 '1'을 기준으로 분할2. 분..

TIL/Programers

[JAVA] 조건 문자열

- if 문으로 해보려다가 계속 안 돼서.. 아마 {} 쓰기 귀찮아서 그냥 했다가 조건 안맞았던듯.- 결국 gpt 한테 물어봤고 switch 문의 존재에 대해 깨달음. 왜.. 항상 switch 문은 기억이 안날까??? [Java]String condition = ineq + eq; switch (condition) { case ">=": return n >= m ? 1 : 0; case "!": return n > m ? 1 : 0; case "가독성과 확장성이 좋지만 각 조건에서 유사한 코드가 반복됨.  Map> functions = Map.of( ..

TIL/Programers

[JAVA] 홀짝에 따라 다른 값 반환

양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return if (n%2 != 0) for (int i=1; i   [Java]if (n%2 != 0) { for (int i=1; i반복문과 조건문 사용: 명확하고 직관적이지만 다소 비효율적.두 번째 루프에서 모든 i에 대해 Math.pow(i, 2)를 호출하는 것은 오버헤드가 있을 수 있다.  for(int i = n; i >= 0; i -= 2) answer += (n % 2 == 0) ? i * i : i;단일 반복문과 조건 삼항 연산자 사용: 간결하지만 명확성이 떨어질 수 있음.(n % 2 == 0) ..

TIL/Programers

[JAVA] n의 배수

- 배수 -> 나머지 연산을 떠올린 나, 칭찬해~- 수학적 사고에 한 틈 담궜구나~ Q. 정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return[Java]return num % n == 0 ? 1 : 0;   [Python]return int(not(num % n))num%n은 int 값이지만, 이를 not() 함수 안에 넣으면 int가 bool로 해석되어서 num%n이 0이면 False로, 0이 아니면 True로 해석됩니다 return int(num % n == 0) return 1 if num % n == 0 else 0

TIL/Programers

[JAVA] 두 수의 연산값 비교

[Java]int ab = Integer.parseInt("" + a + b);int ab2 = 2 * a * b; return Math.max(ab, ab2);"" + a + b와 같은 문자열 결합 방식은 String.valueOf(a) + b보다 명확성이 떨어질 수 있습니다.  return Math.max( (int)Math.pow(10, (int)Math.log10(b) + 1) * a + b, 2 * a * b); 로그와 거듭제곱을 사용Math.pow와 Math.log10를 사용하여 a를 b보다 큰 자릿수로 이동시키는 방식큰 숫자나 특수한 경우에서 Math.pow와 Math.log10의 정확성 문제가 있을 수 있습니다.예를 들어, 부동소수점 연산의 정밀도 문제가 발생할 수 있습니다.문..

TIL/Programers

[JAVA] 더 크게 합치기 -- Integer.parseInt(), Math.max()

- 숫자를 문자열로 형변환 해서 더하기 --> 형변환을 꼭 하지 않아도 "" 와 같이 더하면 됨!- 크기 비교할 때 if 만 떠올렸는데, Math.max() 함수를 쓸 수 있었음. 수학적 사고 필요함~~- 간단한 비교문은 삼항연산자를 떠올리자~  [Java] String strA = String.valueOf(a);String strB = String.valueOf(b); int ab = Integer.parseInt(strA + strB);int ba = Integer.parseInt(strB + strA); if (ba > ab) return ba;else return ab;문자열 변환, 결합, 정수 변환이 단계별로 분리되어 있어 디버깅이 용이합니다.중간 변수 선언과 여러 메..

함s
'TIL/Programers' 카테고리의 글 목록