반응형
반응형

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

 

프로그래머스

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

programmers.co.kr

문제

두 행렬의 같은 행, 같은 열의 값을 서로 더한 값을 return 하면 됩니다.

 

코드

1. zip() 함수와 for문을 사용해서 배열 안에 있는 값을 꺼내 더한 후 배열 [] 안에 다시 넣어주고 return 헀습니다.

def solution(arr1, arr2):
    return [[x + y for x, y in zip(_arr1, _arr2)] for _arr1, _arr2 in zip(arr1, arr2)]

반응형
반응형
반응형

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]
반응형
반응형
반응형

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