일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩 테스트
- list
- Import
- Combination
- 태그
- 들여쓰기로 표현한 트리
- 알고리즘 표현
- 알고리즘의 조건 5가지
- 과일 장수
- 파이썬
- 트리
- 리스트
- 스택
- 알고리즘의 조건
- import itertools
- python
- 자료구조
- itertools
- Tree
- 유한소수 판별하기
- 프로그래머스
- 좋은 알고리즘
- 자바
- LV.1
- html
- 코딩테스트
- 유사코드
- 큐
- 알고리즘
- java
- Today
- Total
목록전체 글 (86)
인천의 자유인

목차리스트란?리스트의 연산리스트란?리스트는 가장 자유로운 선형 자료구조입니다. 선형 자료구조란 하나의 자료 뒤에 하나의 자료가 존재하는 형태의 자료 구조을 의미합니다. 리스트에서는 어떤 위치에서도 새로운 요소를 삼입할 수 있습니다. 이때 중요한 것은 어느 위치에 요소를 삼입하려면 이후의 모든 자료가 한 칸씩 뒤로 밀린다는 것입니다. 또한 리스트에서는 원소 사이에 순서라는 개념이 있습니다.리스트의 연산리스트의 주요 연산은 다음과 같이 정리할 수 있습니다.insert(pos, e): pos 위치에 있는 새로운 요소 e를 삼입delete(pos): pos 위치에 있는 요소를 꺼내서 반환getEntry(pos): pos 위치에 있는 요소를 삭제하지 않고 반환isEmpty(): 리스트가 비어 있으면 True, 아..

목차덱이란덱의 연산덱이란?덱(deque)은 double-ended queue의 줄임말로서 전단과 후단에서 모두 삼입과 삭제가 가능한 큐를 말합니다. 다만 여전히 중간에는 삼입, 삭제는 불가능합니다. 덱의 연산덱은 큐에서 몇가지 연산이 추가된다.addFront(e): 새로운 요소 e를 전단에 추가addRear(e): 새로운 요소 e를 후단에 추가deleteFront(): 덱의 전단 요소를 꺼내서 반환deleteRear(): 덱의 후단 요소를 꺼내서 반환getFront(): 덱의 전단 요소를 삭제하지 않고 반환getRear(): 덱의 후단 요소를 삭제하지 않고 반환isEmpty(): 덱이 비어있으면 True를 아니면 False를 반환isFull(): 덱이 가득 차 있으면 True를 아니면 False를 반환s..

목차큐란?큐의 연산큐란? 큐(queue)는 가장 먼저 들어간 자료가 가장 먼저 나오는 자료구조입니다. 마치 매표소를 기다리는 대기줄을 생각하면 이해하기 쉽습니다. 이처럼 큐는 먼저 들어간 데이터가 먼저 나가는 선입선출(FIFO: First-In First-On)의 특성을 같는 자료구조입니다. 스택은 a,b,c 이렇게 들어갔을때(삼입) 꺼내면(삭제) c, b, a 순으로 나갔지만 큐는 a, b, c로 삼입이 되면 삭제 순도 똑같이 a,b,c 순서로 나가게 됩니다. 이때 삼입이 일어나는 곳을 후단(rear)이라고 하며, 삭제가 일어나는 곳은 전단(front)이라고 합니다. 큐의 연산스택과 마찬가지로 큐에도 숫자나 문자열을 포함한 어떤 자료든 저장할 수 있습니다. 큐에서도 역시 삼입과 삭제가 가장 핵심적..
먼저 순환이라는 것이 무엇을 의미하는 말할 필요가 있을것 같습니다.순환이란 어떤 함수가 자기 자신을 다시 호출하여 문자을 해결하는 프로그래밍 기법입니다. 팩토리얼을 구할 수 있는 방법이라 하면 반복문과 순환을 이용하는 두가지 방법을 이용할 수 있는데 먼저 반복문 부터 봅시다. 1. 반복문반복문을 이용한 예입니다.def loop(n): a =1 for k in range(2, n+1): a = a * k return a우리에게 굉장히 친숙한 방법입니다. a = 1로 한 것은 알겠지만 0으로 하면 계속 0이 되기 때문입니다.이 예제는 그냥 1부터 n까지 계속 곱하는 간단한 식입니다.2. 순환순환을 사용한 예입니다.def recusion(n): if n == 1: ..

목차스택이란?스택의 연산 스택이란?스택이란 마지막에 들어간 자료가 가장 먼저 나오는 자료구조입니다.스택은 자료의 입출력이 후입선출(LIFO: Last-In Frist-Out)로 제한되는 자료구조입니다.스택은 다른 통로는 모두 막고 한쪽 만을 열어둔 구조이다. 이것을 보통 상단이라고 불립니다. 스택에 저장되는 것을 항복 또는 요소(element)라고 불립니다. 스택의 대표적인 예 중에서 하나는 인터넷의 이전 페이지 기능이나 한컴의 되돌리기 기능을 생각하면 되겠습니다.스택은 숫자나 문자열을 포함한 어떤 자료든 저장할 수 있다. 그건 큐나 트리 같은 다른 자료 구조들도 마찬가지 입니다.스택의 연산스택 자료형은 어떤 연산을 지원해야 할까? 그것을 삼입, 삭제가 가장 핵심적인 연산입니다. 이것은 스택 상태를 변화..

GitHub 주소: https://github.com/1. 저장소 생성먼저 new라는 버튼을 누릅니다. 뉴 버튼을 눌렀으면 이런 화면이 뜨는데 여기서 저장소 이름만 적어주시고 create repository를 누르시면 저장소를 생성하실 수 있습니다.2. 파일 업로드와 웹호스팅버튼 누르면 이런 화면이 나온다. 이 화면에서 uploading an existing file를 클릭한다. 여기서 내가 올리고 싶은 파일을 업로드 하면 된다. 그리고 업로드를 완료했으면 commitchange를 눌러주면 된다.(Add files via upload에다는 하고 싶은 이름을 적어주면 된다.) 제대로 잘 업로드가 된 것을 확인할 수 있다. 그리고 난후 settings를 누른다. 그리고 난 후 pages를 누르면 캡쳐된 화면..

나의 문제 풀이def solution(n): a = 0 for i in range(2,n+1): answer = 0 for j in range(1, int(i**(1/2))+1): if i%j == 0 : answer += 1 if j 2: a+=1 break return n-(a+1) 1000000 이하의 자연수이기 때문에 일반적인 약수 구하는 방법은 안됩니다. 그래서 계산 횟수가 매우 적은 방법인 에라토스테네스의 체를 이용해서 할 수 밖에 없습니다. 일반적인 방법으로 하면 시관 초과로 안됩니다. 이렇게 해서 약수가 두개인 것이 소수이..

나의 문제 풀이import java.util.Arrays;class Solution { public int solution(int k, int m, int[] score) { Arrays.sort(score); int a = score.length%m; int total = 0; for (int i = a; i 배열 sort를 위해 import java.util.Arrays;를 해줍니다. 이것을 하지 않으면 sort를 할 경우 에러가 납니다. 먼저 score를 오름차순으로 정렬합니다. 그리고 score의 길이에서 m을 나눴을때 나오는 나머지를 변수 a에다가 집어 넣어 줍니다. 가장 점수가 작은 것들을 앞에 몰리게 해서 최대 수익을 내기 위함입니다..

나의 문제 풀이def solution(k, m, score): answer = sorted(score) a = len(answer)%m for i in range(a): answer.pop(0) result = 0 for i in range(0,len(answer),m): result += answer[i]*m return result k는 사과 최대 점수, m은 한 상자에 들어가는 사과 수임을 명확히 인식하고 들어가야지 헷갈리지 않습니다. 먼저 score를 오름 차순으로 정렬한 후 사과 박스에 담은 후 남은 사과 수를 구합니다. 최대 이익으로 내기 위해서는 가장 점수가 낮은 사과들을 제외하는 것이 좋기 때문입니다. 남은 사과 수는 answer 리스트 안에서 가장 점수가 낮은 사과로 구성되어야 하기 때문..