Python/Python 문제
잘못된 케이스로 알아보는 Parameter
Assignment1 함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안 되는 이유는 뭘까?? 직접 해보자 def we(a,b="b",c,d="d"): print(a,b,c,d) 에러 non-default value parameter follows default value parameter 가 발생한다. 파이썬은 가장 먼저 positional(non-default) arguments 먼저 받아 들인다. 만약 이런 코드를 생각보자 def we(a,b="b",c,d="d"): print(a,b,c,d) we(1,2) c는 2일까?? 아니다 default value parameter도 position이 존재하기때문에 a = 1 ,..
(4) URL 판별하기 (저장용)
문제 URL이 올바르면 True, 잘못되었으면 False 출력 url은 http:// or https://로 시작 도메인은 도메인.최상위도메인 형식이며 영문 대소문자, 숫자, -로 되어 있어야 함 도메인 이하 경로는 /로 구분하고, 영문 대소문자, 숫자, -, _, ., ?, =을 사용함 정답 import re p = re.compile('^https?://[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+/[a-zA-Z0-9-_/=.?]+$') url = input() print(p.match(url) !=None ) 기본정보 compile 만들기 url 변수에 input()으로 입력값을 받는다 print(p.match(url) !=None)으로 None 이 아닐때만 출력 1단계 시작 문자열 httt..
(3)별로 사각형 간단하게 그리기
문제 a = 가로길이,b = 세로길이 이다. 해당하는 사각형을 별로 그리시오 a, b = map(int, input().strip().split(' ')) 정답 answer = ('*'*a +'\n')*b print(answer) 해석 '*'에 a만큼 곱해서 가로로 그린다. '\n'을 통해 줄바꿈 하고 이 전체에 *b를 하여 세로 열길이를 늘려준다. 진짜 이미 배웠던 문제지만 짧고 간단하게 푸는사람 정말 많다...
(2)포켓몬 종류 찾기 (리스트 & 세트)
문제!! 조건!! 첫번째 풀이! def solution(nums): answer = 0 x = len(nums)/2 for i in range(1,200001): if nums.count(i) >= 1: answer += 1 if answer >= x: break return answer 결과!! 시간 초과가 떴다.. 해결하기위해 sort() 메서드도 사용해보고 여러가지 써보면서 알아 낸 결과가 있다. 반복가능한 객체 range()를 사용할때 range()를 변수에 할당후 반복문을 작성하는게 시간이 단축됌 len(nums)를 변수에 할당하는것보다 직접 사용한것이 시간이 단축됌 if의 중첩보단 elif를 활용하는게 시간이 단축됌 이렇게 알아내고 번뜩생각난게 바로 set객체 였다. 정답!! def solut..
생애 첫 코딩테스트 문제
사실 알고리즘 문제를 풀진 못했다. 우선 문제는 아래와 같다. 수포자 3명의 찍기 패턴은 다음과 같다. 수포자1 = [1,2,3,4,5] 수포자2 = [2,1,2,3,2,4,2,5] 수포자3 = [3,3,1,1,2,2,4,4,5,5] 그리고 나의 풀이는 밑에와 같다. while len(sp1) < 20: j = [1,2,3,4,5] sp1.append(j[i]) if i == len(j)-1: i -= len(j)-1 else: i += 1 while len(sp2) < 20: j = [2, 1, 2, 3, 2, 4, 2, 5] sp2.append(j[i]) if i == len(j)-1: i -= len(j)-1 else: i += 1 while len(sp3) < 20: j = [3, 3, 1, 1,..
(3)클래스 메서드와 속성으로 시계 만들기
공부를 하는데 문제를 보고 뭔지는 알겠고 감은 오지만 가장 근본적인 문제(속성에 값을 어떻게 할당하고 활용해야하나)에 부딪혀 문제를 풀지도 못하고 바로 팁부터 찾게된 문제이다. 문제 표준 입력으로 시:분:초 형식의 시간이 입력됩니다. 다음 소스 코드에서 Time 클래스를 완성하여 시, 분, 초가 출력되게 만드세요. from_string은 문자열로 인스턴스를 만드는 메서드이며 is_time_valid는 문자열이 올바른 시간인지 검사하는 메서드입니다. 시간은 24시까지, 분은 59분까지, 초는 60초까지 있어야 합니다. 정답에 코드를 작성할 때는 class Time:에 맞춰서 들여쓰기를 해주세요. class Time: def __init__(self, hour, minute, second): self.hou..