전체 글

개발함
TIL/이.코.테.

[이.코.테] 복잡도

예전에도 잠깐 파이썬을 배운 적 있고 (6주 네이브 부스트캠프 강의 들음)이번에 방송대에서 파이썬 강의를 들으면서 파이썬의 간단한 문법에 대해 배웠다.(물론 다시 찾아보면서 공부해야할거다..) 정식으로 공부를 시작한 언어는 자바라서 자바에 애정이 깊지만, 알고리즘 문제를 풀기 시작하면서.. (C에 비하면 간결하지만) 자바의 구구절절함에 비해 짧고 이해하기 쉬운 파이썬 문법이 부럽고 배우고 싶어졌다. 그래서 알고리즘 공부는 파이썬으로 해야겠단 마음을 먹고 그쪽 분야에서 유명한 책을 알라딘에서 구했다!   알고리즘이 뭐길래 나를 이렇게 따라다니나..개발자라면 벗어날 수 없는 알고리즘 마수를 직접 대면해보기로 했다.그리고 회사에서 코드를 짤 때, 실행 속도와 용량을 계속 신경쓰시는 팀장님을 보며대체 어떤 부분..

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의 정확성 문제가 있을 수 있습니다.예를 들어, 부동소수점 연산의 정밀도 문제가 발생할 수 있습니다.문..

함s
함함ː