9일차는 아침부터 밤까지 일정이 있어 쉬어갔습니다 ㅎㅎ
또 월요일이네요
월요일은 컨디션 조절이 참 힘들죠. 가볍게 풀고 일찍 자는걸로 ㅎㅎ
내일부터는 강의를 듣고 유형별 백준 문제도 풀 계획입니다.
저녁 먹기전 힘들어서 뻗어있는 시간과 먹은 후 힘들어서 뻗어있는 시간이 좀 아깝습니다. 그렇다고 잠을 줄이기엔 도저히 그건 안되는 사람..
잠죽자 생활을 2년간 해봤는데, 단물 빼먹히고 진짜 죽습니다. ㅎㅎ
아무도 고마워하지 않아요.
아예 음식이 안 받아서 하루에 간신히 커피만 한 잔 먹었던 생활..ㅎ;;
그래서 그 때부터 건강 챙기며 쉬어가자고 생각했습니다.
단순 소수찾기가 뜬금없이 나올 일은 없으니 효율성이 관련된 문제
- 2부터 𝑁까지의 모든 자연수를 나열한다
- 남은 수 중에서 아직 처리하지 않은 가장 작은 수 𝑖를 찾는다
- 남은 수 중에서 i의 배수를 모두 제거한다(𝑖는 제거하지 않는다)
- 더 이상 반복할 수 없을 때까지 2번과 3번의 과정을 반복한다
def solution(n):
lst = [1]*(n + 1) # 1=True
for i in range(2, int(n**(1/2)) + 1):
if lst[i] == 1:
for j in range(i*i,n+1,i):
lst[j] = 0
answer = lst.count(1)
return answer-2 #0,1제외
i*i하면 4부터 시작! step도 i로 두면서 2의 배수 충족!
def solution(n):
num=set(range(2,n+1))
for i in range(2,n+1):
if i in num:
num-=set(range(2*i,n+1,i))
return len(num)
이게 진짜 코딩이군...반성하고 갑니다....한 번에 배수를 다 빼버리다니.... for문을 2번씩이나 돌 필요가 없당 ㅠㅠ
이거...처음에 조건문을 if말고 elif로 했더니
동점이 답인 case에서 if만 실행하고 반복이 넘어가버리는 사태가 발생...
그래서 전부 if로 처리해야 넘어가지 않는다............
무서운 코딩의 세상
def solution(answers):
answer = []
p1 = [1,2,3,4,5]
p2 = [2,1,2,3,2,4,2,5]
p3 = [3,3,1,1,2,2,4,4,5,5]
score = [0,0,0]
for idx,v in enumerate(answers):
if v == p1[idx%len(p1)]:
score[0] += 1
if v == p2[idx%len(p2)]:
score[1] += 1
if v == p3[idx%len(p3)]:
score[2] +=1
for idx,v in enumerate(score):
if v==max(score):
answer.append(idx+1)
return answer
나는 itertools 없으면 못 살듯...
from itertools import combinations
def solution(nums):
answer = 0
for c in combinations(nums,3):
flag = 0
num = sum(c)
for i in range(2,int(num**(1/2))+1):
if num % i == 0:
flag = 1
break
if flag == 0 :
answer += 1
return answer
for - else 구문이 신기하다.
def solution(nums):
from itertools import combinations as cb
answer = 0
for a in cb(nums, 3):
cand = sum(a)
for j in range(2, cand):
if cand%j==0:
break
else:
answer += 1
return answer
def solution(s):
answer = []
dic = {}
for idx in range(len(s)):
if s[idx] not in dic:
answer.append(-1)
else:
answer.append(idx-dic[s[idx]])
dic[s[idx]] = idx
return answer