본문 바로가기

알고리즘 문제풀이3

[Do it! 알고리즘 코딩 테스트 자바편] 알고리즘 공부 (01) 1. 시간복잡도 코딩테스트에는 시간 복잡도라는 내용이 있다. 시간 복잡도란 연산 횟수를 표기하는 방법을 의미한다. 시간복잡도의 유형에는 1. 빅 오메가 : 최선일 때의 연산 횟수를 나타낸 표기법 2. 빅 세타 : 보통일 때의 연산 횟수를 나타낸 표기법 3. 빅 오 : 최악일 때의 연산 횟수를 나타낸 표기법 들이 있다. 코딩테스트에서는 빅 오 표기법을 활용하여 연산 횟수(수행시간) 을 계산한다. 2. 시간 복잡도 계산하기 기본적으로 코딩테스트 문제에는 수행 시간이 주어진다. 1초에 1억번의 연산이 기준이기 때문에 2초가 주어진 경우, 시간 내에 2억번의 연산이 가능하도록 코드를 작성해야 한다. 문제에서 n의 범위가 1 2차 반복문이 2개, 1차 반복문이 1개로 2*n^2 +n 일 경우 가장 차수가 높은 반.. 2023. 3. 14.
프로그래머스 - 올바른 괄호 프로그래머스 올바른 괄호 Java 풀이 1. 문제 2. 풀이 class Solution { boolean solution(String s) { boolean answer = true; int[] ints = s.chars().toArray(); int sum = 0; for (int e : ints) { if (e == '(') { sum += 1; } else { sum -= 1; } if (sum 닫은 횟수가 여는 횟수를 초과하면 안된다. 2. 괄호의 열고 닫은 횟수의 총 합은 0 이 되어야 한다... 2022. 10. 24.
(프로그래머스) 두 큐 합 같게 만들기 with java - 1번 오류, 시간초과 오류, 20번대 오류 해결 방법 프로그래머스 올바른 괄호 Java 풀이 1. 문제 문제 설명 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다.큐는 먼저 집어넣은 원소가 먼저 나오는 구조입니다. 이 문제에서는 큐를 배열로 표현하며, 원소가 배열 앞쪽에 있을수록 먼저 집어넣은 원소임을 의미합니다. 즉, pop을 하면 배열의 첫 번째 원소가 추출되며, insert를 하면 배열의 끝에 원소가 추가됩니다. 예를 들어 큐 [1, 2, 3, 4]가 주어졌을 때, pop을 하면.. 2022. 10. 14.