2024/06

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;문자열 변환, 결합, 정수 변환이 단계별로 분리되어 있어 디버깅이 용이합니다.중간 변수 선언과 여러 메..

TIL/Programers

[JAVA] 문자열 곱하기 -- repeat()

- 파이썬은 정말 미친 언어같다- repeat() 이란 심플하고 강력한 메서드에 대해 알게 되었다. [Java]StringBuilder sb = new StringBuilder(); for (int i=0; iStringBuilder는 가변 문자열을 다루기 때문에 메모리 재할당이 최소화됩니다.문자열 결합 시마다 새로운 문자열 객체를 생성하지 않으므로 효율적입니다.성능이 중요하고 Java 11 이하를 사용한다면 좋습니다    return my_string.repeat(k);String.repeat은 내부적으로 최적화되어 있어 효율적입니다Java 11 이상에서만 사용 가능합니다가장 간결하고 직관적 https://www.javastring.net/java/string/java-string-repea..

TIL/Programers

[JAVA] 문자 리스크를 문자열로 변환 -- Arrays.stream() vs. Stream.of()

- 스트림 어렵다. 써보고싶다~ - 스트림 사용 이유 :1. 간결하고 선언적인 코드2. 병렬 처리 지원 --> 멀티코어 프로세서로 성능 향상3. 풍부한 연산 지원 --> 복잡한 데이터 간결히 표현4. 지연 평가 --> 최종 연산이 호출되기 전까지는 중간 연산이 실제로 수행되지 않음.5. 가독성6. 일관된 API  [Java]StringBuilder sb = new StringBuilder();for (String str : arr) { sb.append(str);}answer = sb.toString();메모리 할당을 최소화하여 성능이 좋지만 장황함.문자열 결합이 매우 빈번하게 일어나는 경우 유용 return String.join("", arr);코드가 매우 간결하고 읽기 쉽습니다.성능이 좋습니다.Jav..

TIL/Programers

[JAVA] 문자열 섞기

- toCharArray() 메서드에 대해 알게 되었다.- IntStream 의 존재에 대해 알게 되었다.- 같은 기능을 하지만 성능과 효율측면에서 다양하게 구현할 수 있음을 알 수 있었다.- 파이썬으로 알고리즘을 공부하고싶단 생각이 강하게 든다,,   [Java] class Solution { public String solution(String str1, String str2) { String answer = ""; char[] array1 = str1.toCharArray(); char[] array2 = str2.toCharArray(); for (int i=0; i문자열을 반복적으로 결합하는 방식은..

함s
'2024/06 글 목록 (2 Page)