본문 바로가기
✨ Club/Ec.crew 코딩 스터디

Ec.crew 8회차 정기 모임 문제

by 정람지 2022. 8. 22.

<소은 - 백준 1025번 제곱수 찾기>

어려워요

https://codepractice.tistory.com/64.  유익~

 

(파이썬) 완전제곱수 판별

처음으로 파이썬에서 완전제곱수를 판별하는 함수를 만들려고 단순히 제곱근이 정수이면 된다고 생각해었다. 그래서 다음과 같은 함수를 만들었었다. def issquare(n): temp = n ** 0.5 if int(temp) == temp:

codepractice.tistory.com

https://pythontoomuchinformation.tistory.com/54

 

[에러 잡자] 파이참 # This code is unreachable

파이참으로 알고리즘 문제인 baby-gin(하단링크)을 복습하던 중.. [2021.02.15] SWEA # Python_D2_11454_Baby-gin Game 🎭 [문제] 6장의 카드가 run과 triplet으로만 구성된 경우를 baby-gin으로 부른다. swexper..

pythontoomuchinformation.tistory.com

Code is unreachablePylance 에러. break 뒤에 명령어 넣으면 안 됨

https://www.codeit.kr/community/threads/1757

for i in range(시작 숫자, 끝 숫자, -1). 하나씩 빠짐

ex

for i in range(6, 0, -1):  6부터 시작해서 1까지 -1씩 증가

 

range 함수를 내림차순으로 만들 수 없나요? | 코드잇

c언어에서는 for문이 내림차순이라해야되나 반복이 돌아가는데 파이썬에서는 for문이 안되는건가요?i = 6 for i in range(i, 1): print(i)이렇게 해봤는데 6 5 4 3 2 1 0 나오게 하고싶은데 while문으로만 가능

www.codeit.kr

https://www.delftstack.com/ko/howto/python/random-integers-between-range-python/

ramdom 모듈 이용하기!

ramdom.randiant(A,B) 의 범위! A부터 B까지, A,B 포함!!

 

Python에서 범위 내 임의 정수 생성

이 자습서는 Python에서 임의의 정수를 생성하는 방법을 보여줍니다.

www.delftstack.com

입력값이 띄어쓰기가 없이 붙여져 있으니 구분해야 한다!
   Alllist.append(list(map(int, list(sys.stdin.readline().replace('\n', '')))))
그리고 append 추가도 한번에 가능!

from sys import stdin
import random
N, M = map(int,stdin.readline().split()) # N행 M열
Alllist = []
for _ in range(N):  # 좌표 리스트에 입력받기
    nlist = list(map(int,list(stdin.readline().replace('\n', ''))))
    Alllist.append(nlist)

# 완전제곱수인지 판별하는 함수
def starStar(n) :
    real = 0
    if int(n**0.5)**2 != n:
        real = -1
    else:
        real = n
    return real
         
# 선택한 수의 좌표가 등차수열인지 판별하는 함수 / 리턴값 true.false
def plusPlus(A):# 리스트 안에 리스트 형태 A-> [[1,2],[1,3]...]
    result = '' 
    BB =A[0][0]-A[1][0] 
    for i in range(len(A)-1):
        AA = A[i][0]-A[i+1][0] 
        if BB == AA:
            result = 'True'
            BB = AA
        else:
            result ='False'
            break
    return result

# 각 자리 숫자를 하나의 숫자로 변환시켜주는 함수
def seatSeat(List):
    result = 0
    leng = len(List)
    for i in range(leng):
        result += List[i]*( 10**(leng-i-1))
    return result

# 조합될 수 있는 수 중 가장 큰 것을 선택.
for i in range(max(N, M), 0, -1): # 자리수
    result = []
    realResult = []
    for _ in range(i):
        xN = random.randint(0,N-1)
        xM = random.randint(0,M-1)
        print(Alllist, xN, xN)
        if Alllist[xN][xM] != ' ':
            rere = [xN, xM]
            realResult.append(Alllist[xN][xM]) #리스트 진짜 번호 후보
            Alllist[xN][xM] = ' '
        result.append(rere) # 리스트 자리 번호 후보 완료

    # 결과
    if plusPlus(result)=='True':
        realrealresult = seatSeat(realResult)
        if starStar(realrealresult) == True:
            print(realrealresult)
            break

내논리는완벽해썹!그넫 왜안되는거얍!!

 

하..휴..논리에도 빵꾸 발견.. 랜덤으로 돌려서 더 큰 수가 있을 수 있는데 그거 무시하고 브레이크함 자릿수크기만생각햇네

 

휴..다음에해야지..언젠간하겟지


<소은 - 백준 1085번 직사각형에서 탈출>

 

from sys import stdin
x, y, w, h = map(int,stdin.readline().split())
length = min(w-x, x, h-y, y)
print(length)

< 솔민 - 백준 10773번 제로>

https://devpouch.tistory.com/69

 

[Python] 파이썬 리스트 요소 제거하기

파이썬 리스트에서 요소를 제거하는 방법은 크게 인덱스를 통한 제거 방법과 값을 통한 제거 방법이 있습니다. 인덱스로 제거하기 del 리스트명[인덱스] del 키워드를 통해 리스트명에 인덱스를

devpouch.tistory.com

인덱스 번호로 제거하고 싶을 때는 pop 쓰기!!

from sys import stdin
N = int(stdin.readline())
result=[]
for i in range(N):
    M = int(stdin.readline())
    if M == 0:
        result.pop(-1)
    else:
        result.append(M)
realresult = 0
for cha in result:
    realresult += cha
print(realresult)

< 수연 - 백준 2460번 지능형 기차>

from sys import stdin
result =[]
A = 0
for i in range(10):
    N, M = map(int,stdin.readline().split()) 
    B = M-N
    A += B
    result.append(A)
print(max(result))

 


<나경 - 프로그래머스: 나누어 떨어지는 숫자 배열>

오 프로그래머스는 처음 해본다!

#나누어떨 검사 함수
def solution(arr, divisor):
    answer = []
    for i in range(len(arr)):
        if arr[i]%divisor == 0:
            answer.append(arr[i])
    if len(answer) == 0:
        answer.append(-1)
    answer.sort()
    return answer

from sys import stdin

arr = list(map(int,stdin.readline().split()))
divisor =int(stdin.readline())
print(solution(arr, divisor))

와 한줄로 정리하신 분이..

def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]

<은체 - 백준 1065번 한수>

하루공부 백준풀이에 있음

from sys import stdin
M = int(stdin.readline())

def funcfunc(N,NLen):
    benum = N%(10**(NLen))//(10**(NLen-1))
    afnum = N%(10**(NLen-1))//(10**(NLen-2))
    NLen -= 1
    return benum - afnum 

realresult = 0

for i in range(1,M+1):
    N = i
    NLen = len(str(N))
    realNlen = NLen
    result = 0

    if NLen == 1 or NLen == 2:
        realresult += 1
    else:
        while( NLen > 2 ):
            if funcfunc(N,NLen) == funcfunc(N,NLen-1):
                result += 1
            NLen -= 1
            
        if result == realNlen-2:
            realresult += 1

print(realresult)

ㅎㅎ이화여대 136등~!