본문 바로가기
부트캠프TIL, WIL/AI웹개발(스파르타코딩클럽)

[AI 웹개발TIL]9일차 개발일지

by 우지uz 2023. 3. 22.

오늘 하루는 !!

1. 파이썬  개념 및 문법을 잡고,

 

2. 프로그래머스 사이트에 있는 모의고사 문제를

푸는 시간을 가졌습니다 ㅎㅎ

 

1. 파이썬 개념 떼려 잡기!

나노코딩의 파이썬 입문 책입니다! 

전체적인 개념을 잡는데에 유용한 것 같아요! 
강의에는 자주 쓰는 것들이나, 예제를 풀기 위한 
함수들이 적혀 있는데 

책에는 모든 개념들과 상세설명들이 다 나와있어서
매우 좋았어요 ! 

2장 자료형과 변후
3장 연산자
4장 문자열 다루기
5장 자료구조
6장 제어문

 

오늘은 2장부터 4장까지는 총 4회독 정도 복습을 했고

5장부터 6장까지 정독하며 이해. 2회독정도 복습을 했어요!

전체적인 개념이해를 하고 나니까, 마음의 무게??라는게 좀 덜한거 같아요!

작년부터 공부하시던 분이나, 이미 강의를 다 듣고
코딩 문제들을 풀고 계신분들을 보면 자꾸 조바심이 나더라구요 ㅠ
결국 1~2달 차이거나 얼마 차이도 안나는데말이죠 ....

오늘은 개념공부를 이렇게 진행해 봤구요 !

 

2. 프로그래머스에 있는 모의고사 문제 풀어보기

 

문제 찍어서 많이 맞추는 사람 찾기.

프로그래머스에 있는 문제 가장 많이 찍어서 맞추는 사람 찾기 문제입니다. 

다른 분들이 자꾸 풀어봤다고 하시길래... 나만 못 풀었나 싶어서 도전 했는데 
계속 안 풀리더라구요 ㅠㅠ 

드디어 해결 했습니다 !

문제 풀기전 초기 상태 이해

def solution(answers):
    answer = []
    return answer

일단 문제를 풀기 전의, 초기 상태인데요 

def 은 함수를 정의 한다는 의미입니다. 
그 이후에 

solution은 함수 이름이고

(answers): 은 함수를 이루는 변수가 answers라는 것입니다.
마지막에 : 은 함수를 마칠 때 마다 써야하는 약속이구요

answer = []는 지금 answer라는 list가 비어 있는 상태이고

return answer를 반환한다는 의미입니다. 

수포자 1,2,3의 OMR정답 체크 리스트를 작성

 a = [1,2,3,4,5]
    b = [2,1,2,3,2,4,2,5]
    c = [3,3,1,1,2,2,4,4,5,5]
    length= len(answers)

a와 b,c 의 리스트를 작성했고
문제에서 랜덤하게 10000개 이하의 문제를 추출한다고 했기에
전체 문제 수를 

length= len(answers)

로 정의 했고

문제수와, 수포자 1,2,3의 정답 체크 리스트의 갯수를 맞춰주기 위해서

a = a * (length//len(a)) + a[:length%len(a)]
    b = b * (length//len(b)) + b[:length%len(b)]
    c = c * (length//len(c)) + c[:length%len(c)]

각 리스트에 몫을 곱하고, 나머지를 더해주었습니다. 

이후
문제들과 각각의 사람들의 정답지를 한 묶음으로 묶어주고

cnta=sum([ x==y for (x,y) in zip(answers, a)])
    cntb=sum([ x==y for (x,y) in zip(answers, b)])
    cntc=sum([ x==y for (x,y) in zip(answers, c)])
    cnt = [cnta,cntb,cntc]

    answer = []
    max_freq = max(cnt)

    for i in range(len(cnt)):
        if cnt[i]==max_freq:
            answer.append(i+1)

    return answer

그 세 묶음을 

cnt = [cnta,cntb,cntc]

한 리스트로 만들어 준 다음에
가장 큰 숫자를 가진 변수를 지정하고
for, if, return 함수를 통해 결과값을 도출해보았습니다 ..

다른 분의 정답도 해석해보고 공부하게 되면, 
다음 TIL에 기록하도록 하겠습니다 ! 
오늘도 화이팅!