728x90

분류 전체보기 93

[Programmers] k의 개수

문제 설명 문제 풀이 과정 처음에는 string 형태로 변경하여 포함되어 있으면 answer +1로 하였지만, 11의 경우 1을 2번 count 해야 하여 실패 Counter로 갯수를 센 후 value 값 반환하여 개수를 answer에 더해줌. from collections import Counter def solution(i, j, k): answer = 0 for num in range(i, j+1): cnt = Counter(list(str(num))) if str(k) in list(map(str, cnt.keys())): answer += cnt[f'{k}'] return answer 다른 사람의 풀이 count 함수 쓰기... def solution(i, j, k): answer = sum([..

Coding test 2023.01.05

[Programmers] 두 정수 사이의 합

문제 설명 문제 풀이 과정 범위를 지정해주기 위해 a가 b보다 큰 경우 두 값을 교환, 값이 같을 경우 바로 리턴해줌. 그 후 범위 값을 더해줌. def solution(a, b): answer = 0 if a b: a, b = b, a for i in range(a, b+1): answer += i return answer 다른 사람의 풀이 a가 b보다 큰 경우 두 값 교환 for문을 사용하지 않고 범위의 sum을 사용하여 간단하게 해결 def adder(a, b): # 함수를 완성하세요 if a > b: a, b = b, a return sum(range(a,b+1)) - coding test url: https://school..

Coding test 2023.01.04

[Programmers] 크기가 작은 부분 문자열

문제 설명 문제 풀이 과정 t의 자릿수만큼 반복. 단, 남은 문자열이 p의 문자열 길이보다 작으면 중단 t에서 p의 자릿수만큼 slicing 후 비교, 작거나 같으면 answer에 += 1 def solution(t, p): answer = 0 for i in range(0,len(t)): if (len(t) - i) < len(p): break elif int(t[i:i+len(p)]) = int(t[i:i+len(p)]): answer += 1 return answer - coding test url: https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발..

Coding test 2023.01.04

[Deep Learning] 모델 설계하기

기본 예제로 모델 설계 과정 설명 폐암 수술 환자의 생존율 예측하기 # 딥러닝을 구동하는 데 필요한 케라스 함수 호출 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # 필요한 라이브러리 불러옴 import numpy as np import tensorflow as tf import pandas as pd # 실행될 때마다 같은 결과를 출력하기 위해 설정하는 부분 np.random.seed(3) tf.random.set_seed(3) # 준비된 수술 환자 데이터를 불러옴 Data_set = np.loadtxt('/content/drive/MyDrive/colab/deep_learning_basi..

Deep Learning 2022.12.30

[Algorithm] 정렬 알고리즘_4(단순 삽입 정렬)

06-4 단순 삽입 정렬 단순 삽입 정렬 알아보기 단순 삽입 정렬(straight insertion sort): 주목한 원소보다 더 앞쪽에서 알맞은 위치로 삽입하며 정렬하는 알고리즘 단순 선택 정렬과 비슷해 보이지만 값이 가장 작은 원소를 선택하지 않는다는 점이 다릅니다. 정렬된 부분과 아직 정렬되지 않은 부분에서 다시 배열을 구성할 경우에는 다음 작업을 n - 1번 반복하면 정렬이 완료됩니다. 아직 정렬되지 않은 부분의 맨 앞 원소를 정렬된 부분의 알맞은 위치에 삽입합니다. 단순 삽입 정렬의 알고리즘 개요는 다음과 같습니다. for i in range(1, n): tmp ← a[i]를 넣습니다. tmp를 a[0], ···, a[i -1]의 알맞은 위치에 삽입합니다. 위 그림에서 반복 제어 변수 j에 i..

Code/Algorithm 2022.12.26

[Algorithm] 정렬 알고리즘_3(단순 선택 정렬)

06-3 단순 선택 정렬 단순 선택 정렬 알아보기 단순 선택 정렬(straight selection sort): 가장 작은 원소부터 선택해 알맞은 위치로 옮기는 작업을 반복하며 정렬하는 알고리즘 단순 선택 정렬에서 교환 과정은 다음과 같습니다. 아직 정렬하지 않은 부분에서 값이 가장 작은 원소 a[min]을 선택합니다. a[min]과 아직 정렬하지 않은 부분에서 맨 앞에 있는 원소를 교환합니다. 이 과정을 n - 1번 반복하면 정렬하지 않은 부분이 없어지면서 정체 정렬을 완료합니다. 이 알고리즘의 개요는 다음과 같습니다. for i in range(n - 1): min# a[i], ···, a[n-1]에서 키값이 가장 작은 원소의 인덱스 a[i]와 a[min]의 값을 교환합니다. 실습 6-6 단순 선택 ..

Code/Algorithm 2022.12.26

[Programmers] 롤케이크 자르기

문제 설명 문제 풀이 과정 첫 번째 풀이 for문으로 돌아가면서 각각의 토핑 종류 개수가 같으면 answer에 +1 시간 초과로 실패 def solution(topping): answer = 0 for i in range(1, len(topping)+1): if len(set(topping[:i])) == len(set(topping[i:])): answer += 1 return answer 두 번째 풀이(다른 사람 풀이 참고) collections의 Counter 함수 사용 topping의 갯수를개수를 센 후, 하나씩 cnt dictionary에 넣어가면서 개수를 비교함. 단순 슬라이싱이 아닌 딕셔너리 변경으로 복잡도 감소 from collections import Counter def solution..

Coding test 2022.12.23

[Programmers] 할인 행사

문제 설명 문제 풀이 과정 want와 number를 key, value 형태의 dictionary로 변경 discount를 10일씩 slicing 하면서 dic과 동일할 때마다 answer + 1 from collections import Counter def solution(want, number, discount): answer = 0 dic = {item : val for item, val in zip(want, number)} for i in range(len(discount)-9): if dic == Counter(discount[i:i+10]): answer += 1 return answer - coding test url: https://school.programmers.co.kr/learn..

Coding test 2022.12.20

[Python] yaml file 읽기(parameter 지정)

0. package install 먼저, python yaml 패키지가 설치되어야 합니다. !pip install PyYAML 1. yaml import 후 읽기 그 후, yaml를 import 한 후 읽습니다. import yaml with open('./parameter.yaml') as f: parameters = yaml.load(f, Loader = yaml.FullLoader) 2. parameter 지정 yaml file은 key와 value 값으로 구성되어 있기 때문에 key 값으로 value를 불러옵니다. learning_rate = parameters['learning_rate'] epoch = parameters['epoch']

Code/Python 2022.12.20

[Algorithm] 정렬 알고리즘_2(버블 정렬)

06-2 버블 정렬 버블 정렬(bubble sort): 이웃한 두 원소의 대소 관계를 비교하여 필요에 따라 교환을 반복하는 알고리즘으로, 단순 교환 정렬이라고도 합니다. 버블 정렬 알아보기 위 그림은 이웃한 원소를 비교하고, 필요하면 교환하는 전체 작업 과정입니다. 이때 원소 수가 n인 배열에서 n -1번 비교·교환을 하면 가장 작은 원소 1이 맨 앞으로 이동합니다. 이러한 일련의 비교·교환하는 과정을 패스(pass)라고 합니다. 버블 정렬 프로그램 실습 6-1 버블 정렬 알고리즘 구현하기 이 프로그램은 n개의 원소 수와 각각의 원솟값을 입력받습니다. i값을 0부터 n - 2까지 1씩 증가시키고, 패스를 n - 1번 수행합니다. # 버블 정렬 알고리즘 구현하기 from typing import Mutab..

Code/Algorithm 2022.12.19
728x90