<오늘 배운 것>
- 코드 컨벤션
- 협업을 할 때 서로의 코드를 잘 알아보기 위해 만든 코드의 작성 규칙
- 코드 컨벤션을 지키지 않아도 문법적으로 오류는 아니기 때문에 잘 실행되지만 협업 시 문제가 됨!
- python에서는 함수명을 snake표기법, 클래스명을 pascal표기법을 사용하도록 권장함
- snake표기법: you_are_good
- pascal표기법: YouAreGood
- camel표기법: youAreGood <-python에서는 사용 안 함
- python에는 코드 컨벤션에 맞게 코드를 고쳐주는 formatter가 존재함: pep8
- 정규표현식
- 문자열이 특정 패턴과 규칙을 지키고 있는지 확인하는 코드
- 비밀번호, 이메일, 핸드폰 번호 등의 유효성 판단
- 정규표현식 코드 앞에는 r이 붙음
- \n : 줄바꿈, \t : tab
<오늘의 문제>
- (어제 못 풀었던) 코딩테스트 문제 풀기
- 5번째 시도...는 아니고 다른 팀원분이 푸셨다고 해서 봤는데 for문에도 문제가 있었다!!
for i, ans in enumerate(answers):
if one[i] == ans:
cnt_one += 1
if two[i] == ans:
cnt_two += 1
if three[i] == ans:
cnt_three += 1
rank[1] = cnt_one
rank[2] = cnt_two
rank[3] = cnt_three
- 어제 고민했던 rank 딕셔너리는 {}를 빼야 했고 for문에 ans뒤에 [i]도 빼는 게 맞았다
- 근데 이렇게 해서 코드는 실행됐는데 정답이 아니었다
- 제한조건에 <시험은 최대 10,000 문제로 구성되어있습니다> 이런 문장이 있었는데 이걸 고려하지 않았었다
- 다른 팀원분이 정답을 맞췄다
one = [1, 2, 3, 4, 5] * 2000
two = [2, 1, 2, 3, 2, 4, 2, 5] * 1250
three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] * 1000
- 배열 10,000개를 맞춰야 하는 것이었다
- 역시 집단지성이란...!!
- 또 다른 팀원분은 아예 다른 식으로 문제를 푸셨다
- 코드를 공유받았는데 잘 모르겠어서 다른 팀원분과 같이 설명을 들었다
- 이렇게도 풀 수 있구나 싶었고 내 스스로 문제를 해결하지 못해서 아쉬웠지만 다른 문제들을 더 많이 풀어봐야겠다고 생각했다
<내일 목표>
- 심화 강의가 어렵고 머리에도 잘 안 들어와서 천천히 듣다보니 다 못 들었다 -> 파이썬 심화 문법 강의 완강!
- 다른 방법으로 문제풀이 해주신 팀원분이 백준 알고리즘 문제를 단계별로 푸는 방법을 알려주셨다 -> 백준 알고리즘 문제 풀어보기(혼자!!!)
- '로또번호 생성기', '계산기' 등 간단한 코드 작성해보기