일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 키디랜드
- 도쿄디즈니랜드
- 가보자고
- 야키토리
- 스카이트리
- ChatGPT
- 목록
- 정처기실기후기
- 대4인생
- 정처기실기
- 정처기실기준비
- 아자뵤
- 오모테산도
- ADsP시험방법
- ~8월까지
- 다이마루백화점
- 캐릭터스트리트
- 도쿄스카이트리
- ADsP
- 일본편의점
- 생성형ai
- 시부야스크램블교차로
- 도쿄여행
- adsp시험후기
- 랄프커피
- 가라오케
- 마츠리
- 오모테산도힐즈
- 도쿄아사히
- 일본녹차
- Today
- Total
+ Repository +
[코딩테스트 입문] 코딩테스트 1일차 오답노트 본문
코딩테스트 연습 : 프로그래머스 (https://school.programmers.co.kr/)
정말 오래 놓고 지냈던 코딩이라 ⌒⌒.. 이번주는 코딩테스트 입문 파트 뽀개기 목표~
개념이 제대로 잡혀야 응용도 잘 되는거임. 꼼꼼하게 기억 잘 되살리자 !!
✔️ 각도기 문제
→ Python에서 else-if 문 관계
1 | 2 |
if 조건 : else : if 조건 : else : if 조건 : ・・・ 연속 |
if 조건 : elif 조건 : else : |
+ 관계연산자 헷갈리지 말기, == 여야 등가,= 면 대입 ~
✔️ 짝수의 합 문제
문제 잘 읽기! 처음엔 짝수 거를필요 없는데 문제 잘못 읽어서 계속 틀렸음 ㅡㅡ
def solution(n):
answer = 0
for i in range (n+1):
if i%2==0 :
answer += i
return answer
range함수는 끝-1까지 하나씩 업되며 돌아가니 (별다른 설정 안하면)
n+1 해야한다는 점 잊지말기 ~
⏳✔️ 배열 뒤집기 문제
def solution(num_list):
answer = []
for i in range (1,len(num_list)+1):
answer.append(num_list[-i])
return answer
반복문 0,1,2 ... 가 되면 num_list[-0] = num_list[0] 이 되므로 첫 값이 제대로 안 먹힌다.
따라서 1부터 시작할 수 있도록 함수안에 조건 걸어줬고, 따라서 갯수도 전체길이 +1이 되어야한다는 점 ~
range 조건문 안 건들이고 append 에서 인덱스 조절할수도 있을 것 같은데, 고민 됨.
아무리 생각해도 역순 출력이 전체값 - i , - i 두개밖에 생각 안 난다 ㅜ_ㅜ
아, [::-1] 도 된다고 한다. → 근데 또 이건 코드 돌려보니 안됨. 더 알아보기
✔️ 문자열 뒤집기 문제
def solution(my_string):
answer = ''
for i in range (len(my_string)):
answer = my_string[::-1]
return answer
리스트는 append 로 차곡차곡 넣어줘야하고,
문자열은 append등 매서드 안 먹히니 슬라이싱으로 접근해야함.
(+나 *는 리스트처럼 단순 더하기, 단순 반복으로 처리 됨 & 인덱싱도 됨)
✔️ 피자 나눠먹기 (1) → 7조각 n명 나누기
def solution(n):
answer = 0
answer = n//7 +1 #이렇게 하면 7명, 14명 등 경계값일 때 +1판이 된다.
return answer
처음에 짠 코드는 이거인데, 이렇게 하면 7명, 14명 등 경계값일때 몫 이 1,2 등이므로 7명인데도 2판 사야하는 상황 됨.
def solution(n):
answer = 0
answer = (n-1)//7 +1
return answer
따라서 이렇게 넣어주면 경계값 고민 해결 ~
최소인원 1명일 때 0//7+1 해도 1로 잘 나오니 깔끔하다.
* answer 주어져있어도 걍 return에 바로 수식 넣어도 될지, 주어진 변수는 최대한 써야하는건지 궁금 ~ 일단은 주어진건 쓰는 방향으로.
✔️ 분수의 덧셈 문제 → 기약분수로 나타내기
import fractions
def solution(denum1, num1, denum2, num2):
answer = []
add_denum = denum1*num2 + denum2*num1
add_num = num1*num2
m = fractions.Fraction(add_denum, add_num) #기약분수로?
answer = [m.numerator, m.denominator]
return answer
fractions 모듈 불러오기 * 기약분수 만들어줌 *
분자 -> numerator
분모 -> denominator
혹은 from fractions import Fracion
Fraction(a,b) 바로해도 될것이다~,,
모듈 쓰면 편하게할 수 있으니 기억하자 ...
✔️ 홀수 짝수 갯수구하기 문제
def solution(num_list):
answer = []
odd, even = 0, 0
for i in range (len(num_list)):
if num_list[i]%2 == 0 :
even +=1
else :
odd +=1
answer = [even, odd]
return answer
코드길이 줄여본다면
def solution(num_list):
answer = []
even = 0
for i in range (len(num_list)):
if num_list[i]%2 == 0 :
even +=1
answer = [even, len(num_list)-even]
return answer
'취업공부 > 코딩테스트' 카테고리의 다른 글
[Python] 백준 알고리즘 스택∙큐∙덱 기억할 것들 (2) | 2023.09.26 |
---|---|
[Python] 백준 알고리즘 배열 기억할 것들 (0) | 2023.09.09 |
[Python] 백준 코딩테스트 1~6단계 기억할 것들 (0) | 2023.09.01 |