목록Algorithm (160)
alpyrithm_알파이리즘
2621 카드게임 https://www.acmicpc.net/problem/2621 2621번: 카드게임 근우는 오늘 재미있는 카드 게임을 배우고 있다. 카드는 빨간색, 파란색, 노란색, 녹색의 네 가지 색이 있고, 색깔별로 1부터 9까지 숫자가 쓰여진 카드가 9장씩 있다. 카드는 모두 36(=4x9)장이다. � www.acmicpc.net 문제 풀기 전 공부할 것 : 수학, 구현 문제 풀기 전 주의해야 할 점 : 규칙 1 - 9까지 나와있는 입력을 넣었을 때 알맞은 출력인지 확인하면 대부분의 에러를 피할 수 있다. 풀이 1 - 우선 규칙이 복잡해서 이를 정리할 필요가 있다. - 리스트, 딕셔너리, set 등 어떤 형태로 카드 정보를 저장할 것인지 정해야 한다. - 알아야 하는 조건이 카드 5장 모두 같..
1652 누울 자리를 찾아라 https://www.acmicpc.net/problem/1652 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 문제 풀기 전 공부할 것 : 수학 문제 풀기 전 힌트 ▼ 중간에 어정쩡하게 눕는 경우가 없으므로 '.'이 2개 이상 연달아 있다면 그것은 누울 자리 1개로 생각하면 된다. 풀이 1 누울 자리가 2자리 이상 붙어있으면 누울 자리 1개로 한다. 방을 row별로 room에 저장을 한다. 방을 돌면서 '.'(누울 수 있는 자리)이 2개 이상 붙어있는 곳을 찾는다. c..
1004 어린 왕자 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주�� www.acmicpc.net 문제 풀기 전 공부할 것 : 원과 점의 관계(수학) 풀이 1 출발점과 도착점이 원 안에 속하면 진입이나 이탈이 필요하다. 따라서 출발점과 도착점 각각 원 안에 속하는지 확인을 해야 하며 둘 다 속하면 진입이나 이탈을 할 필요가 없다는 점을 이해해야 한다. flag를 통해 출발점과 도착점이 동시에 속하는 경우를 구별했다. import sys input = sys..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
참고 사이트 : 파이썬 코딩 도장 파이썬 코딩 도장: 35.1 클래스 속성과 인스턴스 속성 알아보기 Unit 35. 클래스 속성과 정적, 클래스 메서드 사용하기 지금까지 간단하게 클래스를 만들고 속성과 메서드를 사용해봤습니다. 이번에는 클래스에 속해 있는 클래스 속성에 대해 알아보겠습니다. � dojang.io 클래스 속성과 인스턴스 속성 알아보기 클래스 속성 사용하기 class 클래스이름: 속성 = 값 - 클래스 속성은 클래스에 속해 있으며 모든 인스턴스에서 공유한다. 클래스 속성 : 모든 인스턴스가 공유, 인스턴스 전체가 사용해야 하는 값을 저장할 때 사용 인스턴스 속성 : 인스턴스별로 독립되어 있음, 각 인스턴스가 값을 따로 저장해야 할 때 사용 정적 메서드 사용하기 - 클래스의 메서드를 사용할 때..
자료구조(1) 10828 스택 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 � www.acmicpc.net 문제 풀기 전 공부할 것 : 스택 풀이 1 cmd를 split() 하지 않으면 cmd[0]를 했을 때 'p', 't', 's', 'e'와 같이 하나의 알파벳을 가리킨다. 제일 최근 풀이 import sys input = sys.stdin.readline def command(stk, cmd): cmd = cmd.split() if cmd[0] =..
정렬 알고리즘은 n개의 숫자를 사용자가 지정한 기준에 맞게 정렬하여 출력하는 알고리즘이다. 1. 선택 정렬(Selection Sort) 선택 정렬은 현재 위치에 들어갈 값을 찾아 정렬하는 알고리즘이다. 기본 로직 정렬 되지 않은 인덱스의 맨 앞에서 부터, 이를 포함한 그 이후의 배열값 중 가장 작은 값을 찾아간다. 가장 작은 값을 찾으면, 그 값을 현재 인덱스의 값과 바꿔준다. 다음 인덱스에서 위 과정을 반복해준다. 이 정렬 알고리즘은 n-1개, n-2개, ..., 1개씩 비교를 반복한다. 따라서 배열이 어떻게 되어있어도 전체 비교를 진행하므로 시간복잡도는 O(N^2)이다. 공간복잡도는 단 하나의 배열에서만 진행하므로 O(N)이다. Python code def selectionSort(arr): n = ..