본문 바로가기
728x90
반응형

JAVA146

JAVA Doit 알고리즘 코딩테스트 자바 편 - Day2 03 자료구조 03-1 배열과 리스트 배열 : 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 배열의 특징 1. 인덱스를 사용하여 값에 바로 접근할 수 있다. 2. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다 3. 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다. 4. 구조가 간단하므로 코딩 테스트에서 많이 사용한다. 리스트 : 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조 리스트의 특징 1. 인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 한다. 다시 말해 값에 접근하는 속도가 느리다. 2. 포인터로 연결되어 있으.. 2023. 5. 23.
JAVA 프로그래머스 [분수의 덧셈] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 분수의 덧셈 https://school.programmers.co.kr/learn/courses/30/lessons/120808 해결 과정 모두가 알 듯, 분수의 덧셈은 통분을 통해 이루어진다. 두 분수의 분모를 똑같이 맞춘 후 그에 알맞게 분자에 곱해주면 된다. 최소공배수를 고려하지 않고 일단 통분을 해보면 공통 분모는 denom1 * denom2 가 된다. 분자는 각각 numer1*denom2, numer2*denom1 이다. 우리는 이 두 분수를 더할 것이기 때문에 더하게 되면, 분모는 denom1 * denom2이고, 분자는 numer1*denom2 + numer2*denom1 이 된다. 우리는 조건에 따라 기약분수로 나타내야 하기 때문에.. 2023. 5. 23.
JAVA 프로그래머스 [두 수의 나눗셈] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 두 수의 나눗셈 https://school.programmers.co.kr/learn/courses/30/lessons/120806 해결 과정 먼저 answer의 자료형을 나눗셈을 고려하여 double로 선언해준다. 보통의 몫을 구한다면 num1/num2의 결과로 소수점이 버려지겠지만, 본 문제에서는 소수점자리까지 모두 표현해야 하므로 (double)을 형변환을 해주고 1000을 곱해준다. answer = (double) num1/num2 * 1000; 이 결과에 정수부분을 출력해야하므로 다시(int)를 붙혀 형변환을 해줌으로써 소수점을 버릴 수 있다. 이 부분을 return에서 한번에 처리하여 출력한다. return (int)answer; 소스.. 2023. 5. 23.
JAVA Doit 알고리즘 코딩테스트 자바 편 - Day1 01~02 코딩테스트 준비하기 01 어떤알고리즘으로 풀어야 할까? - 알고리즘 선택의 기준이 되는 시간 복잡도 01-1 시간 복잡도 표기법 알아보기 1. 빅 - 오메가 : 최선일 때의 연산 횟수를 나타낸 표기법 2. 빅 - 세타 : 보통일 때의 연산 횟수를 나타낸 표기법 3. 빅 - 오 : 최악일 때의 연산 횟수를 나타낸 표기법 * 코테에서는 빅-오 표기법을 기준으로 수행 시간을 계산한다 01-2 시간 복잡도 활용하기 시간 초과 시 -> 1. 알맞은 알고리즘인가? -> 2. 비효율적인 로직을 찾아서 효율적으로 바꾸자! 2. 코드의 논리 오류를 어떻게 잡을까? - 가장 뛰어난 오류 탐색 방법, 디버깅 디버깅(Debugging) - 프로그램에서 발생하는 문법 오류나 논리 오류를 찾아 바로잡는 과정 오류1. .. 2023. 5. 22.
JAVA 프로그래머스 [두 수의 곱] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 두 수의 곱 https://school.programmers.co.kr/learn/courses/30/lessons/120804 해결 과정 (생략) 소스 코드 class Solution { public int solution(int num1, int num2) { int answer = 0; answer = num1 * num2; return answer; } } 2023. 5. 22.
JAVA 프로그래머스 [몫 구하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 몫 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/120805 해결 과정 (생략) 소스 코드 class Solution { public int solution(int num1, int num2) { int answer = 0; answer = num1 / num2; return answer; } } 2023. 5. 22.
JAVA 프로그래머스 [두 수의 차] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 두 수의 차 https://school.programmers.co.kr/learn/courses/30/lessons/120803 해결 과정 (생략) 소스 코드 class Solution { public int solution(int num1, int num2) { int answer = 0; answer = num1 - num2; return answer; } } 2023. 5. 22.
JAVA 프로그래머스 [두 수의 합] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 두 수의 합 https://school.programmers.co.kr/learn/courses/30/lessons/120802 해결 과정 (생략) 소스 코드 class Solution { public int solution(int num1, int num2) { int answer = -1; answer = num1 + num2; return answer; } } 2023. 5. 22.
JAVA 자료구조/알고리즘 - 연결리스트(Liked List) 노트정리 관련문제 풀이 [1] 백준 1158번 [요세푸스 문제] https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net [2] 프로그래머스 [프로세스] https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2023. 5. 13.
JAVA 자료구조/알고리즘 - 해시맵(HashMap) 노트정리 관련문제 풀이 [1] 백준 26008번 [해시 해킹] https://www.acmicpc.net/problem/26008 26008번: 해시 해킹 첫째 줄에 비밀번호의 길이 $N$과 문자 종류의 개수 $M$, 정수 $A$가 주어진다. ($1 \le N, M, A \le 5\,000\,000$) 둘째 줄에 재현이가 알아낸 해시값 정수 $H$가 주어진다. ($0 \le H < M$) www.acmicpc.net [2] 프로그래머스 [의상] https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을.. 2023. 5. 13.
JAVA 자료구조/알고리즘 - 배열(Array) 노트정리 관련문제 풀이 [1] 백준 10818번 [최소, 최대] https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net [2] 프로그래머스 [나누어 떨어지는 숫자 배열] https://school.programmers.co.kr/learn/courses/30/lessons/12910 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘.. 2023. 5. 13.
JAVA 자료구조/알고리즘 - 큐(Queue) 노트정리 관련문제 풀이 [1] 백준 1021번 [회전하는 큐] https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net [2] 프로그래머스 [기능개발] https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.. 2023. 5. 13.
JAVA 자료구조/알고리즘 - 스택(Stack) 노트정리 관련문제 풀이 [1] 백준 25556번 [포스택] https://www.acmicpc.net/problem/25556 25556번: 포스택 포닉스가 순열을 청소할 수 있으면 YES, 불가능하다면 NO를 출력한다. www.acmicpc.net [2] 프로그래머스 [같은숫자는 싫어] https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2023. 5. 13.
728x90
반응형