유클리드 호제법(최대공약수 구하기)
·
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~3일차 - SQL학습
·
DB
◇ SQL이란?데이터베이스와 대화를 하기 위한 언어※ SQL 이란 언어를 이용하여 데이터베이스에 요청을 하는 질의를 ‘Query’ 라고 한다. 데이터베이스는 데이터가 저장되어있는 '데이터베이스'라는 큰 폴더가 그안 '테이블'이라는 파일이 있다고 생각할 수 있다.테이블은 아래와 같은 구조를 갖고 있다.테이블의 각 열을 '컬럼' 혹은 '필드'라고 부른다.◇ 기본 문법- 기본 문법SELECT : 데이터를 가져오는 기본 명령어FROM : 데이터를 가져올 테이블을 특정해주는 문법' * ' : 모든 컬럼을 가져와준다는 의미- 원하는 컬럼 선택- 컬럼에 별명설정하기구분영문, 언더바특수문자(공백포함), 한글방법별명만 적음"별명"으로, 큰따옴표 안에 작성예시ord_no"ord no""주문번호"◇ WHERE절(엑셀의 필터..
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과 달라지게된다.
1일차 - 데이터베이스(fierbase) 사용하기
·
DB
데이터베이스란?데이터를 저장하고 여러 사람들이 관리하는 데이터의 모음관계형 데이터베이스(SQL) : 정리딘 정보를 다룰 때 사용 ex) 은행, 대기업비관계형 데이터베이스(NoSQL) : 복잡하거나 유연한 정보를 다룰 때 사용 ex) 스타트업 Fierbase(구글 클라우드 기반 NoSQL 데이터베이스) 사용- 파이어스토어 세팅 코드  ※ script의 type을 module으로 변경하게되면 click같은 코드가 작동안될 수 있다. - 데이터베이스에 데이터 넣기- 데이터 추가 스켈레톤 코드 - 사용 예시다음과 같은 html코드에서 각 변수에 id값을 대입→ let 변수 = $('#id').val();doc 딕셔너리를 생성하여 각 변수값을 저장→ let doc = { key : value, ...}데이터베이스..
스타터 노트
·
Java & Spring
내가 Spring(Java) 트랙에 참여한 계기는 무엇인가요?내일배움캠프를 지원하기 전 유튜브를 통해서 기초 강의를 들었을 때 프론트앤드쪽 보다는 백엔드쪽이 흥미로워서 Java트랙에 지원하게되었습니다.Java를 하기 전 Python도 잠깐 경험해보았으나 취업시장에서는 Java가 대중적이라고해서입니다.내가 이해한 개발자는 어떤 역할을 하는 사람인가요?생각하고 상상하는 것을 코드를 통해 구현하여 현실에 만드는것입니다.개발을 경험해보셨나요? 해보셨다면 어떤 경험을 하셨는지를 작성해주시고, 아니라면 개발에 대해 찾아본 것을 작성해주세요.유튜브강의를 듣고 간단한 코드테스트를 진행한 경험밖에 없습니다.개발자의 역할을 수행하는 데에 있어 나의 강점과 연관된 부분은 무엇이라고 생각하나요? 혹은 보완, 개선하고 싶은 개..
혼자공부하는 컴퓨터 구조와 운영체제 Ch1~5
·
이론공부
Ch1. 컴퓨터 구조01 - 1 / 컴퓨터 구조를 알아야 하는 이유문제 해결컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고, 문제 해결의 실마리를 다양하게 찾을 수 있다.성능, 용량, 비용컴퓨터 구조를 이해하면 입,출력 개발을 넘어선 성능, 용량, 비용등을 고려한 개발을 할수있게 된다.01 - 2 컴퓨터 구조의 큰 그림컴퓨터가 이해하는 정보데이터명령어컴퓨터의 네가지 핵심 부품□ CPU : 메모리에 저장된 명령어를 읽고, 해석하고, 실행하는 부품(ALU, 레지스터, 제어장치로 구성)  → ALU : 계산기  → 레지스터 : CPU 내부의 작은 저장장치  → 제어장치 : 제어 신호를 내보내고, 명령어를 해석하는 장치□ 메모리(주기억장치) : 현재 실행되는 프로그램의 명령어와 데이터를 저장하..
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 을 하..
개발로드 2-3. 프론트앤드 기본 지식(JavaScript)
·
자바스크립트 사전 : https://opentutorials.org/course/50/37 String - 생활코딩한줄요약 문자열 객체. 문자를 제어하는 다양한 메소드와 속성을 가지고 있다. 문법 String([stringText]) new String([stringText]) // String은 자주 사용하는 객체이므로 다음과 같은 형식을 사용하면 암시적opentutorials.org□ 수의 연산- Math.Math.pow(x,y); : 제곱Math.round(x,y); : 반올림Math.ceil(x,y); : 올림Math.floor(x,y); : 내림Math.sqrt(x); : 제곱근Math.random(); : 1보다 작은 임의의 숫자□ 문자형식확인- typeof xtypeof 1 → numbert..