반응형
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

파라미터 s가 4, 6개야 하며, 문자가 있으면 False return, 없고 숫자만 있으면 True를 return 하면 됩니다.

 

코드

1. try except을 사용해 문자열 중 int()화 하지 못하면 False로 return 하도록 코딩을 써봤는데 테스트 5, 6, 28, 29에서 실패했습니다.

def solution(s):
    answer = True
    if len(s) not in (4, 6):
    	return False
        
    for i in range(len(s)):
        try:
            int(s[i])
        except:
            answer = False
    return answer

 

2. 좀 더 생각해보니 파이썬 isdigit() 함수를 사용할 수 있어서 사용했습니다.

def solution(s):
    return len(s) in (4, 6) and s.isdigit()

반응형
반응형
반응형

문제

파라미터 n이라는 자연수를 받으면 그 숫자만큼 '수'와 '박'을 번갈아 가면서 적은 문자열을 return하면 됩니다.

 

코드

1. for 과 if

def solution(n):
    answer = ''
    for i in range(n):
        if i%2 == 0:
            answer = answer + '수'
        else:
            answer = answer + '박'
    
    return answer

 

2. 정말 완벽하게 문제를  이해하고 푼 코드입니다.

def water_melon(n):
    str = "수박"*n
    return str[:n]

 

반응형
반응형

 

문제

문자열을 파라미터로 받으면 그 문자열 중간에 있는 글자를 가져와 return하면 됩니다.

만약 문자열이 짝수면 중간에 있는 2개의 글자를 return하면 됩니다.

 

코드

1. math import 해서 푸는 방법입니다.

import math
def solution(s):
    answer = ''
    i = int(len(s) / 2)
    if len(s) % 2 == 0:
        answer = s[i-1] + s[i]
    else:
        answer = s[i]
    return answer

 

2. 다른 분의 코드

def string_middle(str):
    a = len(str)
    if a % 2 == 0 :
        a = (a-2) / 2
    else :
        a = (a-1) / 2
    return str[int(a) : -int(a)]

 

3. 다른 분의 코드

def string_middle(str):
    return str[(len(str)-1)//2 : len(str)//2 + 1]
반응형
반응형
반응형

AUC란?

AUC는 Area Under Curve의 약어입니다.

AUROC라고 불리기도 하며, AUROC는 Area under the ROC(receiver operating characteristic) curve의 약어입니다.

(정확하게 이해하기 위해서는 ROC의 뜻이 뭔지 알아야합니다.)

AUC는 ROC curve의 밑면적을 말합니다. 그러므로 성능 평가에 수치적인 기준이 될 수 있습니다. 1에 가까울수록 그래프가 좌상단

 

 

ROC란?

ROC는 Receiver Operating Characteristic curve의 약어입니다. FPR(False positive rate)과 TPR(True Positive Rate)을 각각 x, y 축으로 놓은 그래프입니다.

 

TPR이란?

1인 케이스에 대해 1로 바르게 예측하는 비율을 말합니다.

 

FPR이란?

0인 케이스에 대해 1로 틀리게 예측하는 비율입니다.

 

 

추가적인 내용은 아래 사이트를 참조하시면 됩니다.

https://towardsdatascience.com/understanding-the-roc-curve-in-three-visual-steps-795b1399481c

 

Understanding the ROC curve in three visual steps

One of the metrics that took me longer to understand in Data Science was the Receiver Operating Characteristic (ROC) curve. This is a…

towardsdatascience.com

 

반응형

'머신러닝 & 딥러닝' 카테고리의 다른 글

tf.config.set_visible_devices()  (0) 2023.05.06
[library] seaborn  (0) 2023.04.28
ModuleNotFoundError: No module named ""  (0) 2023.04.25
'NoneType' object has no attribute 'shape'  (0) 2023.04.13
pin_memory란?  (0) 2023.04.11
반응형
반응형

panda.info()를 사용하면 데이터 프레임에 있는 데이터를 확인할 수 있습니다

 

반응형
반응형
반응형

문제

sklearn에서 f1._score import 할 때 에러가 발생했습니다.

 

 

해결

1과 l이 jupyter notebook에서는 같은 모양이라 잘못 입력했던거였습니다.

숫자 1로 바꾸니 제대로 import 되었습니다.

 

 

* conda install -c anaconda scikit-learn 으로 설치 후 conda update scikit-learn 으로 업데이트 하면됩니다.

반응형

'Python' 카테고리의 다른 글

zip()  (0) 2023.05.03
combinations()  (0) 2023.05.03
[panda]info()  (0) 2023.04.26
IndentationError: unindent does not match any outer indentation level  (0) 2023.04.25
ValueError: min() / max() arg is an empty sequence  (0) 2023.04.19
반응형
반응형

상황

IndentationError는 들여쓰기 문제입니다. 

발생 원인은 for문에서 if문 사용하다 발생 했습니다.

 

 

해결

들여쓰기를 수정해주면 됩니다.

대체로 tab을 사용해서 띄어쓰는데, 이 때 발생했을 확률이 높습니다.

반응형

'Python' 카테고리의 다른 글

zip()  (0) 2023.05.03
combinations()  (0) 2023.05.03
[panda]info()  (0) 2023.04.26
cannot import name 'fl_score' from 'sklearn.metrics'  (0) 2023.04.26
ValueError: min() / max() arg is an empty sequence  (0) 2023.04.19
반응형
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/131127

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

멤버쉽을 통해서 구매할려는 품목을 할인 받을 수 있는 날짜를 구해서 return 해야하는 문제입니다.

 

코드

1. 테스트는 통과했지만 테스트 12 말고는 실패했습니다.

def solution(want, number, discount):
    answer = 0
    arr = [number[idx] * [i] for idx, i in enumerate(want)]
    arr = sum(arr, [])
    
    for i in range(len(discount) - len(arr)):
        idx = i
        try:
            tmp = discount[i: i + len(arr)]
            for j in range(len(arr)):
                if arr[j] not in tmp:
                    break
                else:
                    tmp.remove(arr[j])
            if not tmp:
                answer = i + 1
                break
        except:
            pass
        
    return answer

 

2. Counter 함수 사용.(다른분 코드)

from collections import Counter

def solution(want, number, discount):
    answer = 0
    dic = {}
    
    for i in range(len(want)):
        dic[want[i]] = number[i]
    
    for i in range(len(discount) -9):
        if dic == Counter(discount[i:i+10]):
            answer += 1
    
    return answer

반응형

+ Recent posts