분류 전체보기 50

[파이썬] 현대자동차 Softeer :: 성적평가 풀이

Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 1. 문제 현주는 N명의 인원이 참여하는 프로그래밍 스터디 그룹을 이끌고 있다. 현주는 스터디를 위해 대회를 세 개 개최하였고, 모든 구성원이 각 대회에 참여하였다. 참가자는 각 대회에서 0 이상 1,000 이하의 정수인 점수를 얻는다. 한 대회에서 둘 이상의 참가자가 동점이 나오는 경우도 있을 수 있다. 현주는 각 대회별 등수 및 최종 등수를 매기고 싶다. 등수는 가장 점수가 높은 사람부터 1등, 2등, ···, N등의 순서대로 붙는다. 만일 동점이 있을 경우 가능한 높은 (등수의 수가 작은) 등수를 부여한다. 즉, 점수가 내림차순으로 10,7,6,6,4의 순서일 경우, 6점을 받은 두 사람은 공동 3등이 되고, 그 다..

코딩테스트 2023.03.02

[파이썬] 현대자동차 Softeer :: 금고털이 풀이

https://softeer.ai/practice/info.do?idx=1&eid=395 1. 문제 루팡은 배낭을 하나 메고 은행금고에 들어왔다. 금고 안에는 값비싼 금, 은, 백금 등의 귀금속 덩어리가 잔뜩 들어있다. 배낭은 W ㎏까지 담을 수 있다. 각 금속의 무게와 무게당 가격이 주어졌을 때 배낭을 채울 수 있는 가장 값비싼 가격은 얼마인가? 루팡은 전동톱을 가지고 있으며 귀금속은 톱으로 자르면 잘려진 부분의 무게만큼 가치를 가진다. 2. 제약조건 1 ≤ N ≤ 106인 정수 1 ≤ W ≤ 104인 정수 1 ≤ Mi, Pi ≤ 104인 정수 3. 입력 첫 번째 줄에 배낭의 무게 W와 귀금속의 종류 N이 주어진다. i + 1 (1 ≤ i ≤ N)번째 줄에는 i번째 금속의 무게 Mi와 무게당 가격 Pi..

코딩테스트 2023.03.02

[파이썬] 백준 10026번 문제, 적록색약 풀이 (DFS)

문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속한다. (색상의 차이를 거의 느끼지 못하는 경우도 같은 색상이라 한다) 예를 들어, 그림이 아래와 같은 경우에 RRRBB GGBBB BBBRR BBRRR RRRRR 적록색약이 아닌 사람이 봤을 때 구역의 수는 총 4개이다. (빨강 2, 파랑 1, 초록 1) 하지만, 적록색약인 사람은 구역을 3개 볼 수 있다...

코딩테스트 2023.02.23

[파이썬] 백준 7562번 문제, 나이트의 이동 풀이 (BFS)

문제 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까? 입력 입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 체스판의 한 변의 길이 l(4 ≤ l ≤ 300)이 주어진다. 체스판의 크기는 l × l이다. 체스판의 각 칸은 두 수의 쌍 {0, ..., l-1} × {0, ..., l-1}로 나타낼 수 있다. 둘째 줄과 셋째 줄에는 나이트가 현재 있는 칸, 나이트가 이동하려고 하는 칸이 주어진다. 출력 각 테스트 케이스마다 나이트가 최소 몇 번만에 이동할 수 있는지 출력한다. 문제를 보고 얻어야 하는..

코딩테스트 2023.02.23

Numpy Array 선언 및 배열 크기, 타입 확인

안녕하세요. 이번 포스팅에서는 넘파이 배열의 선언 및 크기, 배열 요소들의 타입을 확인하는 방법에 대해 설명드리고자 합니다. Numpy 배열은 행렬로 구성된 데이터를 분석하는데에 특화된 데이터로써, 데이터 분석에서 자주 쓰이는 모듈로, 자주 사용되는 모듈이오니 잘 알고 계시면 좋을 것 같습니다. 1. Numpy Module Import In [1]: import numpy as np Numpy Array를 사용하기 위해서는 Numpy 모듈에 대한 참조를 수행해야 합니다. 그래서 가장 처음에 Numpy 모듈을 Import 해주는 작업을 해줍니다. 2. Numpy Array 선언 Numpy Array 정의 방법에는 다양한 방법이 있으나, Python에서 사용하는 리스트 변수 선언 방법과 가장 기본적인 방법으..

Numpy 넘파이 메소드 및 연산 정리 shape, full, arange, zeros, ones, 브로드캐스팅 연산

In [1]: import numpy as np 1. Array 정의 In [2]: # 일반 python 리스트 정의 data = [1,2,3,4,5] data Out[2]: [1, 2, 3, 4, 5] In [3]: # 일반 python 리스트 정의 data2 = [1,2,3,3.5,4] data2 Out[3]: [1, 2, 3, 3.5, 4] In [4]: # numpy를 이용해서 array 정의 # 위에서 정의한 python list를 이용 arr = np.array(data) arr Out[4]: array([1, 2, 3, 4, 5]) In [5]: # array의 형태(크기)를 확인 arr.shape Out[5]: (5,) In [6]: # 바로 리스틀르 넣어줌으로써 array 만들기 arr2..

성수동 맛집 [쵸리상경] 후기

아내와의 첫 결혼기념일을 맞이하며 맨 처음 찾은 곳은 바로 성수동입니다! 아내가 인터넷으로 검색해보니 서울숲공원이 서울에서 가장 '큰' 공원이라고 하여 나들이 겸 가봐야겠다고 생각했어요. 또, 주변에 성수동에 맛집이 많은 것으로 유명해서 공원 산책도 하고 맛있는 것도 먹으려고 방문했어요! 어딜갈까 고민하다가 찾은 곳은 '쵸리상경' 입니다! 주변에 오래된 벽돌 건물이 많았는데요 여기도 같은 벽돌 건물 같았는데 여기에 흰색 페인트 칠해서 그런가 힌층 깔끔해보여서 좋았어요 지하에 음식점이 하나 더 있는데 여기도 웨이팅도 길구 맛있다고 하네요 아 그리고 성수동 음식점들은 대부분 Break Time이 있습니다 !! 오시기 전에 Break Time 시간을 반드시 확인하고 가시는 걸 추천드립니다. 아이구,, 서론이 ..

일상 2021.11.20

차원 축소 연산 정리 - Numpy

행렬의 하나의 행에 있는 원소들을 하나의 데이터 집합으로 보고 그 집합의 평균을 구하면 각 행에 대해 하나의 숫자가 나오게 된다. 예를 들어 10x5 크기의 2차원 배열에 대해 행-평균을 구하면 10개의 숫자를 가진 1차원 벡터가 나오게 된다. 이러한 연산을 차원 축소(dimension reduction) 연산이라고 한다. 넘파이는 다음과 같은 차원 축소 연산 명령 혹은 메서드를 지원한다. 최대/최소: min, max, argmin, argmax 통계: sum, mean, median, std, var 불리언: all, any import numpy as np a = np.array([[1,2,3,4,5,6], [7,8,9,10,11,12], [13,14,15,16,17,18], [19,20,21,22,..

[파이썬] 내장함수 'zip'

파이썬의 내장함수 zip에 대해서 알아보도록 하겠습니다. zip(요소, 요소) zip() 함수는 여러개의 Iterable 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플(Tuple) 형태로 반환합니다. 반복 접근이 가능한 Iterable 객체를 요소로 받기 때문에 zip 함수로 만든 하나의 Iterable 객체도 반복 접근이 가능합니다. 아래 예시를 보시면 쉽게 이해하실 수 있습니다. alphabet = ['A', 'B', 'C'] numbers = [1, 2, 3] # zip 형태로 묶은 데이터 차례대로 출력하기 for pair in zip(numbers, alphabet): print(pair) ('A',1) ('B',2) ('C',3) 하나는 알파벳을 저장하고 하나는 숫자를 저장하는 두 It..

Python 2021.07.15

크루스칼 알고리즘 - 파이썬

1. 크루스칼 알고리즘은 대표적인 최소 신장 트리 알고리즘입니다. 2. 그리디 알고리즘으로도 분류됩니다. 3. 구체적인 동작 과정은 아래와 같습니다. 3.1 간선 데이터를 비용에 따라 오름차순으로 정렬합니다. 3.2 간선을 하나씩 확인하며 현재의 간선이 사이클을 발생시키는지 확인합니다. 3.2.1 사이클이 발생하지 않는 경우 최소 신장 트리에 포함시킵니다. 3.2.2 사이클이 발생하는 경우 최소 신장 트리에 포함시키지 않습니다. 4. 모든 간선에 대하여 3.2번의 과정을 반복합니다. [초기 단계] 아래와 같은 노드 간 간선 정보가 있다고 했을 때, 그래프의 모든 간선 정보에 대하여 우선 오름차순 정렬을 수행합니다. 간선 (1,2) (1,5) (2,3) (2,6) (3,4) (4,6) (4,7) (5,6)..

코딩테스트 2021.07.15