유클리드 호제법(최대공약수 구하기)
·
Java & Spring/알고리즘
◇ 유클리드 호제법 : 최대공약수를 구하는 알고리즘최대공약수(GCD) : 유클리드 호제법을 통해 구한다.최소공배수(LCM) : 두 수의 곱을 최대공약수(GCD)로 나눈다.두 수 A, B(A > B)에 대해 A / B의 나머지 C를 계산B를 C로 나눈 나머지 D를 계산C를 D로 나눈 나머지 E를 계산위 과정을 반복하여 나머지가 0이될 때 마지막 나누는 수가 최대 공약수가 된다.ex)1071과 1029의 최대공약수를 구하면 마지막 나머지가 0이되는 수 21이된다.1071은 1029로 나누어 떨어지지 않기 때문에, 1071을 1029로 나눈 나머지를 구한다. ≫ 421029는 42로 나누어 떨어지지 않기 때문에, 1029를 42로 나눈 나머지를 구한다. ≫ 2142는 21로 나누어 떨어진다.◇ 구현1. 재귀함..
4일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 진행일자완료 번호24.07.161~2024.07.1721~3524.07.1836~42- 회고최대공약수, 최소공배수 구하기* 유클리드 호제법- 구현- 에러발생   0으로 나누기 시도- 이유 : 처음 구현 시 최대공약수 값에 s를 대입했는데             while문의 조건에 s가 0이 아닐 때 까지이다, 그러므로 최종 s는 0이되게된다.            그렇기 때문에 최대공약수는 0이되기전 s 즉 tmp에 저장해둔값이 된다.배열에서 세수의 합이 0이되는 경우 찾기개선전삼중 for문으로 시간복잡도가 O(n^3)이된다.for문 중첩은 비효율적이므로 다른방법을 찾아봤다.class Solution { public int solution(int[] number) { int answe..
3일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 진행일자완료 번호24.07.161~2024.07.1721~35- 회고메소드 사용 에러해당 코드에서 [cannot find symbol] 에러 발생해결 : numericValue가 아닌 문자에서 유니코드를 활용해 '0'을 빼주는 방식으로 해결함공식사용을 통한 for문 사용 제한으로 코드 개선두 정수 사이의 합개선전for문을 활용해 하나씩 더함개선후등차수열의 합 공식인 [(항의개수) * (두 수의 합) / 2]을 활용오버플로우 발생개선전개선후입력받는 int num을 long으로 형변환 후 while문 진행문자열 내 변수 사용하기문자열 연결문자열 포맷'MessageFromat'문자열 재구축하기개선전개선후- [s.toCharArray()] : String s를 문자단위로 나눠 char배열 생성- [Array..
2일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 진행일자완료 번호24.07.161~20    - 회고https://school.programmers.co.kr/learn/courses/30/lessons/12934 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 개선전불필요한 형변환과 변수선언들이 있음개선후long타입에서 바로 Math.sqrt를 하게되면 소수점이 잘리므로만약 n의 제곱근이 정수가 아니라면 처음 값 n과 달라지게된다.
스타터 노트
·
Java & Spring
내가 Spring(Java) 트랙에 참여한 계기는 무엇인가요?내일배움캠프를 지원하기 전 유튜브를 통해서 기초 강의를 들었을 때 프론트앤드쪽 보다는 백엔드쪽이 흥미로워서 Java트랙에 지원하게되었습니다.Java를 하기 전 Python도 잠깐 경험해보았으나 취업시장에서는 Java가 대중적이라고해서입니다.내가 이해한 개발자는 어떤 역할을 하는 사람인가요?생각하고 상상하는 것을 코드를 통해 구현하여 현실에 만드는것입니다.개발을 경험해보셨나요? 해보셨다면 어떤 경험을 하셨는지를 작성해주시고, 아니라면 개발에 대해 찾아본 것을 작성해주세요.유튜브강의를 듣고 간단한 코드테스트를 진행한 경험밖에 없습니다.개발자의 역할을 수행하는 데에 있어 나의 강점과 연관된 부분은 무엇이라고 생각하나요? 혹은 보완, 개선하고 싶은 개..
NeetCode - Two Pointers
·
Java & Spring/코딩테스트
□ Is Palindromehttps://neetcode.io/problems/is-palindrome NeetCode neetcode.io- 코드 리뷰반복문을 통해서 양쪽 끝에서 시작하여 charAt과 isLetter || isDigit을 이용하여 새로문 문자열 생성※ isLetter || isDigit 은 isLetterOrDigit으로 사용 가능 □ Two Integer Sum IIhttps://neetcode.io/problems/two-integer-sum-ii NeetCode neetcode.io- 코드 리뷰※ 공간복잡도 O(1)의 조건이 있음List 생성 후 numbers배열 요소 대입만약 targer - numbers[i] 가 list 내에 있으면해당 indexOf를 가져오고 + 1 을 하..
NeetCode - Arrays & Hashing
·
Java & Spring/코딩테스트
https://neetcode.io/roadmap NeetCode neetcode.io□ Duplicate Integerhttps://neetcode.io/problems/duplicate-integer NeetCode neetcode.io □ Is Anagramhttps://neetcode.io/problems/is-anagram NeetCode neetcode.io □ Two Sumhttps://neetcode.io/problems/two-integer-sum NeetCode neetcode.io  - HashMap 사용1. HashMap 초기화HashMap prevMap = new HashMap(); → prevMap은 배열의 값과 해당 인덱스를 저장하는 HashMap입니다.2. 배열 순회for (..
프로그래머스 - 기초트레이닝 7일차(완료)
·
Java & Spring/코딩테스트
뒤에서 5등 위로전국 대회 선발 고사문자열 정수의 합- 문자 '1' 은 아스키 코드 49, '0'은 48이다 문자에서 순수 숫자를 얻고싶으면 - 48 or - '0'을 시행하면된다.문자열을 정수로 변환하기다른방법 :- Integer.parseInt(str); 문자열을 정수형으로 변환하는 메소드0 빼기다른방법:두 수의 합- 사용명령어 : BigInteger`BigInteger` 클래스는 자바에서 정수형 데이터를 임의의 정밀도로 표현할 수 있도록 해주는 클래스입니다.이 클래스는 `int`나 `long`으로 표현할 수 없는 매우 큰 정수를 다룰 때 사용됩니다. 예를 들어, 수십 자리 이상의 정수를 다루어야 하는 경우에 유용합니다. `BigInteger` 클래스의 객체는 불변(immutable)이므로 한 번 생..
프로그래머스 - 기초트레이닝 6일차
·
Java & Spring/코딩테스트
특정 문자열로 끝나는 가장 긴 부분 문자열 찾기- 사용명령어 : str1.lastIndexOf(str2); → str1속 str2가 속하는 가장 마지막 index 시작                       str.substring(a, b);문자열이 몇번 등장하는지 세기ad 제거하기어려웠던부분 : 그냥 for문의 i를 1씩 증가시키면서 remove를 하면 remove되면서 temp의 index에 변동이 생겨                         순환참조시에 문제가 발생되게된다.                         이를 해결하기 위해 역순으로 i를 감소시키면서 for문을 실행한다.다른방법 :- 사용명령어 : iteraotr                       Iterator iteraot..
프로그래머스 - 기초트레이닝 5일차
·
Java & Spring/코딩테스트
n번째 원소부터순서 바꾸기왼쪽 오른쪽다른방법 :for문을 통해 "l"혹은"r"이 나오는 인덱스를 찾고해당 인덱스가 발견되면 return을 통해 조건값을 바로 반환하여 메서드를 종료시킨다.내가 작성한 for-break을 사용할 필요가 없으며굳이 switch로 길게 작성할 필요 없이 if-else if로 해결 가능하다.n번째 원소 까지n개 간격의 원소들다른방법:삼항연산자를 통해서 새로운 배열 answer 의 크기를 정의하고for문을 통해서 answer의 요소들을 대입한다.홀수 vs 짝수5명씩다른방법 :이러한 경우 굳이 다른 변수(idx)를 추가 할 필요가 없다.할 일 목록다른방법 :- 빈 문자열 str 선언- 삼항연산자를 이용해 false인 경우 문자열연산   ex) ("practiceguitar",) ("..