목록분류 전체보기 (103)
Vienna

https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net ◇ 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 ..

https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ◇ Description 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 ..
https://school.programmers.co.kr/learn/courses/30/lessons/120813?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ◇ Description 정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요. ◇ 제한사항 1 ≤ n ≤ 100 ◆ 풀이 먼저 배열의 사이즈를 정한다. 짝수일 때에는 n/2, 홀수일 때에는 n+1한 값에 나누기 2를 하면 개수를 구할 수 있다. 그리고 값을 2씩 증가시키면서 더한 값을 넣어주면..
◇ 직관과 체계적인 접근 문제 해결 전략에서 문제와 답의 구조에 대한 *직관을 강조해야 한다. * 해당 문제를 해결하는 알고리즘이 대략적으로 어떤 형태를 가질지를 짐작할 수 있게 해준다. ◇ 체계적인 접근을 위한 질문들 ◆ 비슷한 문제를 풀어본 적이 있던가? 이전에 사용했던 방법과 비슷한 접근 방법을 사용할 것이라 예측할 수 있다. 문제를 분류하는 방법을 익히고, 각 알고리즘들이 어떤 경우에 사용될 수 있는지 체계적으로 공부해야 한다. 즉, 그 동작 과정과 원리를 완전히 이해하고 있어야 한다. ◆ 단순한 방법에서 시작할 수 있을까? 일단 시간과 공간 제약을 생각하지 않고 문제를 해결할 수 있는 가장 단순한 알고리즘을 만들어 보는 것도 괜찮다. => 어렵게 푸는 실수를 예방! ◆ 내가 문제를 푸는 과정을 ..

◇ 삼각함수 간의 관계 ◆ sin θ 단위원에서 점 P의 y좌표에 해당. θ 0 P(+, +) π/2 P(-, +) π P(-, -) 3π/2 P(+, -) 2π sin θ 0 + 1 + 0 - -1 - 0 ◆ cos θ 단위원에서 점 P의 x좌표에 해당. θ 0 P(+, +) π/2 P(-, +) π P(-, -) 3π/2 P(+, -) 2π cos θ 1 + 0 - -1 - 0 + 1 ◆ tan θ 단위원에서 점 P의 y/x좌표에 해당. θ 0 P(+, +) π/2 P(-, +) π P(-, -) 3π/2 P(+, -) 2π tan θ 0 + 정의 안 됨 - 0 + 정의 안 됨 - 0 삼각함수 사이에는 피타고라스의 정리에 의해 다음 관계 성립. $$x^2+y^2= \overline{OP} ^2=1$$..

https://www.acmicpc.net/problem/24174 24174번: 알고리즘 수업 - 힙 정렬 2 2 5 1 4 3(heapify(A, 2, 5)) -> 2 3 1 4 5(heapify(A, 1, 5)) -> 1 3 2 4 5(A[1] A[5]) -> 5 3 2 4 1(heapify(A, 1, 4)) -> 2 3 5 4 1(A[1] A[4]) -> 4 3 5 2 1(heapify(A, 1, 3)) -> 3 4 5 2 1(A[1] A[3]) -> 5 4 3 2 1(heapify(A, www.acmicpc.net ◇ 문제 오늘도 서준이는 최소 힙 기반 힙 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 서로 다른 양의 정수가 저장된 ..

◇ Description 운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다. 현재 실행 ..

◇ 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. ◇ 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) ◇ 출력 예제와 같이 요세푸스 순열을 출력한다. ◆ 풀이 List를 2개 준비한다. 첫 번째 List..

오늘치 백준 문제를 풀려고 보니 힙정렬에 대한 언급이 나와 힙정렬에 대해 먼저 공부하고 싶었다. ◇ 힙? 부모의 값이 자식의 값보다 항상 크다는 조건을 만족하는 완전이진트리. (이때 부모의 값이 자식보다 항상 작아도 힙이라고 한다. 부모와 자식 요소의 관계만 일정하면 된다.) 부모와 자식 관계는 일정. 형제 사이의 대소 관계는 일정하지 않다. 이 때문에 부분순서트리(parttial ordered tree)라고도 한다. 힙의 요소를 배열에 저장하면 부모와 자식의 인덱스 사이에 다음과 같은 관계 성립 부모는 a[(i-1)/2] 왼쪽 자식은 a[(i-1)/2+1] 오른쪽 자식은 a[(i-1)/2+2] ◇ 힙 정렬? 선택 정렬을 응용한 알고리즘. 힙(heap)의 특성을 이용하여 정렬을 수행한다. 즉, "가장 큰..

◇ LinkedList? 불연속적으로 존재하는 데이터를 서로 연결(link)한 형태) 기존 배열의 단점은 다음과 같다. 크기 변경 불가 비순차적 데이터 추가 및 삭제 시간 오래 소요. 이 단점을 보완하기 위해 LinkedList라는 자료구조가 고안되었다. 아래 코드를 보면 알다시피 LinkedList의 각 요소들은 자신과 연결된 다음 요소에 대한 참조(주소값)와 데이터로 구성되어 있다. class Node{ Node next; Object obj; } LinkedList에서의 데이터 삭제는 다음과 같이 이루어진다. 삭제하고자하는 요소의 이전 요소가 삭제하고자 하는 요소의 다음 요소를 참조하도록 변경하기만 하면 된다 끝! 배열처럼 데이터를 이동하기 위해 복사하는 과정이 없기 때문에 처리속도가 매우 빠르다...