일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- DFS
- MySQL
- eda
- TEAM EDA
- 입문
- 엘리스
- Recsys-KR
- Object Detection
- 한빛미디어
- 추천시스템
- hackerrank
- 3줄 논문
- Python
- 튜토리얼
- 협업필터링
- 나는 리뷰어다
- 알고리즘
- 큐
- Segmentation
- TEAM-EDA
- Semantic Segmentation
- DilatedNet
- Machine Learning Advanced
- pytorch
- 스택
- 프로그래머스
- 코딩테스트
- 파이썬
- 나는리뷰어다
- Image Segmentation
- Today
- Total
목록알고리즘 (21)
TEAM EDA
스도쿠 마스터 퍼즐 게임을 좋아하는 체셔는 요즘 스도쿠에 푹 빠져있습니다. 스도쿠는 숫자퍼즐게임으로 다음과 같은 규칙을 가지고 있습니다. 스도쿠의 규칙 각각의 가로줄과 세로줄에 숫자 1~9가 중복 없이 하나씩 들어간다. 3X3 모양의 네모난 박스 안에는 1~9가 중복 없이 하나씩 들어간다. 체셔는 재밌는 스도쿠를 여러 친구들과 같이 즐기고 싶어서 문제와 답지를 같이 건네주려고 합니다. 하지만 체셔는 답지를 가지고 있지 않아 모든 문제의 답을 찾는 시간이 너무 아깝게 느껴졌습니다. 이런 체셔를 위해 여러분이 스도쿠의 답을 출력해주는 프로그램을 만들어주세요. 입력 예시 0 6 8 0 0 0 9 3 0 0 4 2 0 0 0 6 0 0 1 9 0 0 8 0 0 4 0 0 8 5 2 0 1 0 0 7 7 0 0 ..
흰토끼의 장사하자 오늘도 열심히 알고리즘 공부 중인 엘리스에게 왕궁에서 은퇴한 흰토끼가 찾아왔습니다. “엘리스! 내가 붕어빵가게를 하나 차리려고 하는데 어느 위치에 음식점을 차려야 장사가 잘 될지 모르겠어.” 엘리스는 이런 흰토끼의 고민을 해결해줄 좋은 방법이 떠올랐습니다. “흰토끼야, 우리 골목의 각 사람들까지의 거리의 합이 최소가 되는 위치에 붕어빵 가게를 차리자. 그러면 모두가 너무 멀지 않은 거리라서 자주 찾아 올거야!” 흰토끼는 붕어빵을 잔뜩 팔아 부자가 될 생각에 벌써부터 함박웃음을 짓고 있습니다. 여러분도 흰토끼의 행복한 노후를 위해 엘리스를 도와 프로그램을 완성해주세요! 흰토끼가 붕어빵 장사를 하려는 골목은 일직선입니다. 우리에게 주어진 정보는 골목에 있는 집들의 위치와 그 집에 사는 사람..
엘리스와 비밀번호 엘리스 아카데미의 프로그램 개발자로 취직한 엘리스는 회원들의 현재 비밀번호가 새롭게 개편된 보안 정책에 얼마나 위반하는지 알아보는 업무를 할당받았습니다. 엘리스를 도와 아래에 주어진 보안 정책을 따라 몇 번이나 비밀 번호를 수정 해야 하는지 출력하는 프로그램을 만들어 주세요. 보안 정책 비밀 번호는 8자 이상 30자 이하 의 길이를 가져야 한다. 비밀 번호에는 하나 이상의 소문자, 숫자, 특수문자가 포함 되어야 한다. 하나의 문자가 3번 이상 연속 되면 안된다. 예를 들어 aaabb11!는 사용 불가능한 비밀 번호지만 aabab11!는 사용 가능하다. 입력 예시 1 aBcD2fg! 출력 예시 1 0 입력 예시 2 AA 출력 예시 2 6 입력 비밀 번호가 문자열 형태로 제공됩니다. 이 문..
회의실 준비 (Big) 엘리스씨는 보다 더 나은 서비스를 제공하기 위하여 정기적인 회의를 하는 것을 선호하는 편이다. 여기서 엘리스씨의 역할은 n개의 회의가 언제 시작하는지, 그리고 언제 끝나는지를 모두 모으고, 그 이후 각 회의가 어느 장소에서 이루어져야 하는지를 정한다. 각 회의가 시작하는 시간, 그리고 끝나는 시간은 초단위로 주어진다고 하자. 예를 들어, 하나의 회의는 10초에 시작하여 99초에 끝날 수 있다. 당연하게도, 두 개의 회의가 시간이 겹칠 경우에는 같은 회의실을 사용할 수 없다. 또한, 만약 정확히 10초에 끝나는 회의가 있고, 또 다른 회의가 정확히 10초에 시작한다면, 이 두 회의는 같은 회의실을 사용할 수 있다. 회의실을 빌리는 데에는 돈이 들기 때문에, 엘리스씨는 가능한한 적은 ..
가장 가까운 두 점 찾기 (Big) 2차원 평면에 n개의 점이 있다. 이 점들 중에서 그 거리가 가장 가까운 두 점 사이의 거리의 제곱을 출력하는 프로그램을 작성하시오. 단, 두 점 (x1, y1)과 (x2, y2) 사이의 거리는 $\sqrt{(x1-x2)^2 + (y1-y2)^2}$ 로 정의된다. 예를 들어, 4개의 점이 각각 (0, 3), (1, 1), (2, 2), (7, 1) 에 위치해 있다고 하면, 가장 가까운 두 점은 (1, 1)과 (2, 2)이며, 그 거리의 제곱은 2이다. 입력 첫째 줄에 점의 개수 nn이 주어진다. (2≤n≤100,000) 두 번째 줄부터 각 점의 x좌표, y좌표가 주어진다. 각 좌표는 정수이다. 출력 가장 가까운 두 점 사이의 거리의 제곱을 출력한다. 입력 예시 4 0 ..
Inversion counting n개의 숫자의 리스트 A가 주어질 때, inversion은 다음과 같이 정의된다. 만약 i A[j]라면 A[i]와 A[j]는 inversion 관계이다. 예를 들어, A = [1, 4, 3, 2] 일 경우, 총 3개의 inversion이 존재하는데, 이는 그 값들을 나열해보면 (4, 3), (4, 2), (3, 2) 이다. n개의 숫자가 주어질 때, inversion 관계인 숫자 쌍의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 n개의 숫자가 주어진다. (1≤n≤100,000) 출력 Inversion의 개수를 출력한다. 입력 예시 1 4 3 2 출력 예시 3 풀이 분할정복법을 이용한 계산 합병정렬을 이용해가지고 합병정렬시에 순서가 바..
히스토그램 가로의 길이가 1, 세로의 길이가 각각 다른 nn개의 판자들이 주어진다. 이 판자들은 아래 그림과 같이 모두 붙어있다. 직사각형 모양의 판자가 필요해 진 엘리스씨는, 이 붙어있는 판자들을 적당히 잘라내어 넓이가 가장 큰 직사각형을 얻고싶어 한다. 예를 들어, 위의 그림에서 얻을 수 있는 최대 넓이의 직사각형은 아래 그림과 같다. n개 판자에 대한 정보가 주어질 때, 이를 적당히 잘라 얻을 수 있는 직사각형의 최대 넓이를 출력하는 프로그램을 작성하세요. 입력 첫째 줄에 n개의 판자의 높이가 차례대로 주어진다. (1≤n≤100,000) 첫 번째 숫자는 첫 번째 판자의 높이, 두 번째 숫자는 두 번째 판자의 높이, …, n번째 숫자는 n번째 판자의 높이를 나타낸다. 출력 주어진 판자를 적당히 잘라 ..
색종이 만들기 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2^k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색종이로 나눈다. 나누어진 종이 I, II, III, IV 각각에 대해서도 앞에서와 마찬가지로 모두 같은 색으로 칠해져 있지 않으면 같은 방법으로 똑..
절댓값 순 정렬 문제 : n개의 숫자가 주어질 때, 이를 절댓값을 기준으로 오름차순 정렬하는 프로그램을 작성하세요. 만약 두 수의 절댓값이 같다면, 더 작은 숫자가 앞에 위치하게 됩니다. 이 실습 문제는 Quick sort로 구현해주세요. 입력 : 첫 번째 줄에 n개의 숫자가 주어집니다. 출력 : 절댓값을 기준으로 오름차순 정렬한 결과를 출력합니다. 입력 예시 -2 1 3 9 -5 6 7 -3 출력 예시 1 -2 -3 3 -5 6 7 9 풀이 Quick Sort 절댓값 순 정렬 기저조건 : array가 1개 이하이면 자기자신 출력 임의로 pivot 출력 (중앙에 있는 값) pivot이 크면 왼쪽(left), pivot이 작으면 오른쪽(right), pivot이랑 같은데 음수이면 왼쪽 양수이면 오른쪽(eq..
배열, 연결리스트, 클래스 데이터 구조 (자료구조)이란? 데이터 구조 : 데이터를 저장하는 구조 프로그래밍에서의 자료는 숫자를 의미 컴퓨터 공학의 기본적인 커리큘럼은 아래의 3가지로 구성됨 프로그래밍 언어 : Python, C / C ++ / Matlab 자료구조 : Stack, Queue, Tree (저장하는 방법) 알고리즘 : Brute-Force, Divide & Computer, Dynamic Programming (연산하는 방법) 예를들어, 아래와 같이 샴푸를 보관하는 통(자료구조)을 만들때 아래와 같이 4개를 생각할 수 있고 각자마다의 장단점이 있음. 즉, 나의 목적에 맞게 데이터를 담는 그릇을 디자인 해야한다. 변수, 리스트, 링크드 리스트 변수 : 가장 기본적인 자료구조 리스트 (List)..