Posts by Category

algorithm

백준 문제 복습

June 30 2022

제가 처음 알고리즘을 시작할 때 설정했던 목표치까지 다 풀었습니다. 알고리즘을 풀면서 다른 분들의 코드를 많이 참고했던 것을 반성해 처음부터 다시 혼자만의 힘으로 풀어볼려고 합니다.

백준 17412 - 도시 왕복하기 1 (Python)

June 28 2022

네트워크 플로우 문제입니다. 너무 어려운 문제라 다른 분들의 풀이를 참고했습니다. 네트워크 플로우 알고리즘을 미리 알고 있어야 풀 수 있습니다.

백준 2170 - 선 긋기 (Python)

June 25 2022

라인 스위핑을 이용해서 풀었습니다. 먼저 시작점을 기준으로 오름차순 정렬해서 조건에 맞게 처리했습니다.

백준 11505 - 구간 곱 구하기 (Python)

June 19 2022

구간 합 구하기 문제와 거의 유사합니다. 더하기 부분을 곱셈으로만 변경했습니다. 특히 find함수에서 구간을 벗어났을 때 곱하기 연산이기 때문에 1을 반환하는게 중요합니다.

백준 2042 - 구간 합 구하기 (Python)

June 18 2022

이번 문제에서 세그먼트 트리를 사용하는 이유는 구간합을 빠르게 검색하고 수정하기 위해서입니다. 개념 자체는 쉬우니 바로 코드를 보고 이해하시면 됩니다.

백준 13511 - 트리와 쿼리 2 (Python)

June 11 2022

희소 테이블을 만든 뒤 다음의 조건에 따라 풀었습니다. lca-u + lca-v 출력 k <= depth[u] - depth[lca] 이면 u에서의 k-1번째 노드를 출력 k > depth[u] - depth[lca] 이면 남은 거리를 계산해서 v부터 계산

백준 3176 - 도로 네트워크 (Python)

June 05 2022

바로 전 문제와 거의 흡사합니다. dp에 [노드, 최소거리, 최대거리] 이렇게 저장하는게 핵심입니다. pypy3로 제출해야 합니다.

백준 3584 - 가장 가까운 공통 조상 (Python)

May 23 2022

최소 공통 조상 알고리즘을 사용하면 됩니다. 구하고자 하는 두 수의 각 부모 노드들을 찾아서 배열에 넣어준 다음 서로 다른 숫자가 나올 때 까지 cnt를 늘려가며 탐색하면 됩니다.

백준 17435 - 합성함수와 쿼리 (Python)

May 23 2022

sparse table을 활용하는 문제입니다. sparse table은 모든 계산값을 저장하는 것이 아니라 배로 늘어나는 값들만 저장시켜 계산하기 편하게 해주는 자료구조입니다.

백준 3665 - 최종 순위 (Python)

May 22 2022

이번 문제는 두팀 끼리 순서가 바뀐다 해도 다른 팀끼리의 순서는 변하지 않기 때문에 모든 연결을 표현해야합니다.

백준 2098 - 외판원 순회 (Python)

April 27 2022

너무 어려워 다른 분들의 풀이를 참고했던 문제입니다. 비트마스크, 동적프로그래밍, dfs가 섞인 문제입니다.

백준 11723 - 집합 (파이썬)

April 25 2022

비트마스크를 이용해 풀었습니다. 비트 연산에 관해서는 한번 검색해보시는걸 추천드립니다.

백준 20149 - 선분 교차 3 (파이썬)

April 24 2022

다음 4개의 경우를 생각하시면 됩니다. 교점이 무수히 많은 경우 교점이 없는 경우 교점이 있고 평행한 경우 교점이 있고 평행하지 않은 경우

백준 17386 - 선분 교차 1 (파이썬)

April 18 2022

CCW 공식을 사용하면 풀 수 있습니다. 한 선분의 두 점과 나머지 선분의 점 한 곳의 좌표를 각각 CCW 알고리즘을 사용해 계산하여 곱하면 다른 방향인 경우 -1이 나옵니다.

백준 2533 - 사회망 서비스(SNS) (파이썬)

April 15 2022

부모가 얼리어답터면 자식은 얼리어답터여도 아니여도 됩니다. 하지만 부모가 얼리어답터가 아니라면 자식은 무조건 얼리어답터여야 합니다.

백준 15681 - 트리와 쿼리 (파이썬)

March 25 2022

우선 양방향 트리를 만든 다음에 dfs로 가장 말단의 노드까지 탐색했습니다. 그 노드부터 1씩 더해주면 size 배열에는 특정 정점을 루트로 하는 서브트리의 정점의 수가 저장됩니다.

백준 2887 - 행성 터널 (파이썬)

March 20 2022

각 축별로 정렬을 한뒤에 거리를 구하면 i노드인 경우에 i + 1노드가 가장 최소거리에 있는 연결점인걸 알 수 있습니다. 즉 i + 2부터는 거리를 구할 필요가 없어져 간선의 수가 줄어듭니다. 이렇게 구한 간선들을 크루스칼 알고리즘을 사용해서 마저 연결했습니다.

백준 1197 - 최소 스패닝 트리 (파이썬)

March 17 2022

tree 배열에 입력을 받은 뒤 Kruskal’s algorithm을 사용했습니다. Kruskal’s algorithm은 간선을 기준으로 오름차순 정렬을 한뒤 가중치가 낮은 간선부터 차례로 연결을 해주는 알고리즘입니다.

백준 9372 - 상근이의 여행 (파이썬)

March 13 2022

모든 국가가 연결되어 있기 때문에 N - 1을 출력하면 됩니다. 하지만 탐색으로 한번 풀어봤습니다. 방문하지 않은 루트로 1을 더해주면서 이동하는 쉬운 방법으로 해결했습니다.

백준 4195 - 친구 네트워크 (파이썬)

March 13 2022

이번 문제는 union-find 알고리즘으로 해결했습니다. 문제의 입력이 숫자가 아닌 문자열이여서 dictionary 자료구조를 사용했습니다.

백준 20040 - 사이클 게임 (파이썬)

March 13 2022

입력되는 점들마다 find연산을 해서 부모가 같은지 확인해서 해결했습니다. 입력된 두개의 점들의 부모가 같다면 이미 연결되어 있는 상태이므로 사이클이 발생합니다.

백준 1976 - 여행 가자 (파이썬)

March 09 2022

이번 문제는 union-find 알고리즘으로 해결할 수 있습니다. tmp 리스트를 받는 부분을 보시면 1이면 연결 되어 있다는 뜻이므로 union함수를 호출해 주시면 됩니다.

Programmers 최솟값 만들기

December 08 2020

길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것...

Programmers 최댓값과 최솟값

December 08 2020

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -...

Programmers N개의 최소공배수

December 07 2020

두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩...

Programmers 숫자의 표현

December 07 2020

Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.

Programmers 피보나치 수

December 07 2020

피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.

Programmers 비밀지도

November 25 2020

네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다.

Programmers 시저 암호

November 25 2020

어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함...

Programmers 체육복

November 24 2020

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3...

Programmers 예산

November 24 2020

S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다.

Programmers 소수 찾기

November 24 2020

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.

Programmers 2016년

November 24 2020

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT ...

Programmers 완주하지 못한 선수

November 24 2020

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.

Programmers 모의고사

November 23 2020

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.

Programmers 나누어 떨어지는 숫자 배열

November 23 2020

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

Programmers 하샤드 수

November 23 2020

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

Programmers K번째수

November 23 2020

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.

Programmers 핸드폰 번호 가리기

November 23 2020

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

Programmers 정수 내림차순으로 배치하기

November 23 2020

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

Programmers 문자열 다루기 기본

November 23 2020

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.

Programmers 정수 제곱근 판별

November 23 2020

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

Programmers 최대공약수와 최소공배수

November 23 2020

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3,...

Programmers 자릿수 더하기

November 23 2020

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

Programmers 짝수와 홀수

November 23 2020

정수 num이 짝수일 경우 Even을 반환하고 홀수인 경우 Odd를 반환하는 함수, solution을 완성해주세요.

Programmers 행렬의 덧셈

November 23 2020

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

Programmers 평균 구하기

November 23 2020

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

Programmers 직사각형 별찍기

November 23 2020

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

Programmers x만큼 간격이 있는 n개의 숫자

November 23 2020

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

Programmers 가운데 글자 가져오기

November 23 2020

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

Programmers 같은 숫자는 싫어

November 23 2020

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,

Programmers 문자열 내 p와 y의 개수

November 23 2020

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 ‘p’의 개수와 ‘y’의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. ‘p’, ‘y’ 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자...

Programmers 약수의 합

November 23 2020

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

Programmers 서울에서 김서방 찾기

November 23 2020

String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

Programmers 수박수박수박수박수박수?

November 23 2020

길이가 n이고, 수박수박수박수….와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.

Programmers 두 정수 사이의 합

November 23 2020

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

Back to Top ↑

projects

Back to Top ↑

SoftwareEngineering

Software Engineering

September 21 2020

SoftwareEngineering What is software Engineering? Software engineering is the systematic application of engineering approaches to the development of softwar...

Back to Top ↑

Algorithm

Algorithm

September 23 2020

Algorithm What is algorithm? Algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or t...

Back to Top ↑

database

Database

September 23 2020

Definition of database Integrated data Stored data Operational data Shared data Feature of database Simultaneous common use Reference by ...

Back to Top ↑

Digitalengineering

Digitalengineering

September 23 2020

Analog and digital Analog: An analog signal is any continuous signal for which the time-varying feature (variable) of the signal is a representation of some...

Back to Top ↑

Operatesystem

Operatesystem

September 29 2020

Process Process is a job registered in kernel Process control block: Area where store information about each process registered in the kernel Information o...

Back to Top ↑

Ai

Ai

September 30 2020

Artificial inteligence Artificial life It can self-replicate Hard artificial life It is a machine that thinks like human Soft ar...

Back to Top ↑

DiscreteMathematics

DiscreteMathematics

October 01 2020

Proposition A sentence or formula that can clearly distinguish true or false. Simple proposition A proposition of units that can no longer be divided. ...

Back to Top ↑

Java

Java

December 02 2020

Primitive variable

Back to Top ↑

SQL

SQL

December 08 2020

SELECT

Back to Top ↑

JDBC-JPA

JDBC-JPA

December 20 2020

What is JDBC? JDBC(Java Database Connectivity) is a Java API that allows Java to access databases.

Back to Top ↑

Servlet-JSP

Back to Top ↑

Backend

Backend

January 06 2021

HTTP HTTPS DNS-1 DNS-2 Anycast CDN TLS SSL Web Hosting service Terminal usage Memory management Interprocess communication IO Syst...

Back to Top ↑