인사말
안녕하세요~!
비염과 함께 화려한 콧물 등장입니다 🤣
아침부터 물 같은 콧물 때문에 힘드네요 키키키
화요일이에요!
저희, 오늘도 파이팅 해봅시다 🔥💘
오늘의 일정 | |
오전(09:00 ~ 13:00) | 09:00 ~ 10:00 코드 카타 3문제, 팀 오전 회의 10:00 ~ 13:00 백준 (오븐 시계) |
오후(14:00 ~ 18:00) | 13:30 ~ 15:30 외출 15:30 ~ 18:00 백준 (주사위 세 개) |
저녁(19:00 ~ 21:00) | 19:00 ~ 21:00 머신러닝 특강_2 |
요약
- 코드 카타
- 문자열 뒤집기
- 편지
- 점의 위치 구하기
- 백준 (조건문)
- 오븐 시계
- 주사위 세 개
- 머신러닝 특강_2
- 다항식
- 다항 선형회귀 사례
- 이중 분류
오전(09:00 ~ 13:00)
1. 코드 카타
1.1. 문자열 뒤집기
def solution(my_string):
return my_string[::-1]
🤔 문제 풀이
- my_string[::-1]
- 문자열의 슬라이싱이라고 하죠? 그걸 음수형으로 하면 역순으로 간다고 해요
- 문자열[시작 번호:끝 번호] <- 문자열 슬라이싱
1.2. 편지
def solution(message):
return len(message) *2
🤔 문제 풀이
<제한 사항>
공백도 하나의 문자로 취급합니다.
편지지의 여백은 생각하지 않습니다.
message는 영문 알파벳 대소문자, "!", "~" 또는 공백으로만 이루어져 있습니다.
할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적는다
문제를 풀기 위해 문제를 자세히 봐야 해요!
저는 이게 안 돼서 많이 혼났지만요 ㅋㅋㅋㅋ,,
문제를 보니까 힌트가 나왔죠?
message는 영문 알파벳 대소문자, "!", "~" 또는 공백으로만 이루어져 있습니다.
할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적는다
여백은 생각하지 않는다
이걸 써먹어 봅시다.
- return len(message) *2
- 글자 한 자 한 자가 2칸을 차지한다고 생각했어요
- message의 길이를 구하고, 각 글자마다 2칸씩 차지를 할 거니까 *2를 해주어서 길이를 쟀어요
짜잔~ 정답입니다~!
1.3. 점의 위치 구하기
def solution(dot):
answer = 0
if dot[0] > 0 and dot[1] > 0:
answer = 1
elif dot[0] < 0 and dot[1] > 0:
answer = 2
elif dot[0] < 0 and dot[1] < 0:
answer = 3
else:
answer = 4
return answer
이거 백준으로도 풀었던 문제예요!
익숙하다 했는데, 프로그래머스에도 나오는 문제였네요 🤭
문제 보자마자 "어!! 이거 백준에서 풀었던 건데!!"라는 반응이 나와서
스스로에게 뿌듯했달까요 🤭
이번에도 잘 풀어주었답니다 히히
(10 : 00 ~ 13 : 00)
2. 백준
2.1. 오븐 시계
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60
if m >= 60:
h += 1
m -= 60
if h >= 24:
h -= 24
print(h,m)
4타 만에 푼 문제였어요,, 하하하하ㅏㅎ 🤪
문제 해석하는 데에만 1시간 쓴 거 같아요
코드도 어떻게 짜야할지 모르겠구요,, 하
그래도 해낸 게 어딥니까!!
답안지 찾아서 그냥 풀어버리고 싶었는데, 그러면 공부를 한 보람이 없잖아요
그래서 튜터님께 가서 힌트 받고 그랬어요 스스로 풀고 싶어서요 😣
🤔 문제 풀이
- h, m =map(int,input().split())
- 백준에서 입력해 주는 값을 int로 변환하고, 공백을 기준으로 매칭시켜 줄 겁니다.
- cooktime = int(input())
- 조리 시간을 int형으로 받아줄게요
- h += cooktime //60
- 시간은 조리 시간에다가 60을 몫을 구하고, 몫이 있을 시, 더해줄게요
- m += cooktime %60
- 분은 조리 시간에다가 60을 나눈 나머지를 더해줄게요
- 예) 61%60은 1이 나머지니까 m에 더해줄게요
- if m >= 60:
h += 1
m -= 60- 분이 60이거나 60을 넘어서면 h에 1시간을 더해줄게요
- 그러고 m에는 60을 빼준 값을 반환할게요
- if h >= 24:
h -= 24- h가 24보다 크거나 같을 때는 h에 -24를 해줄게요
- 0시가 필요하니까요
오후(14:00 ~ 18:00)
2.2 주사위 세 개
dice1, dice2, dice3 = map(int,input().split())
if dice1==dice2==dice3:
print(10000 +dice1 *1000)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2
prize = 1000 + same_number * 100
print(prize)
else:
print(max(dice1, dice2, dice3)*100)
같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.
같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.
모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.
🤔 문제 풀이
- dice1, dice2, dice3 = map(int,input().split())
- 주사위 세 개를 받아낼 겁니다
- if dice1==dice2==dice3:
print(10000 +dice1 *1000)- 주사위 세 개가 모두 같은 숫자를 띄울 때를 시작으로 조건문을 시작했습니다
- elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2
prize = 1000 + same_number * 100
print(prize)- 주사위 두 개가 같을 때의 조건문입니다
- dice1&dice2 , dice1&dice3 , dice2&dice3이 주사위 두 개가 같을 때죠
- same_number = dice1 if dice1 == dice2 or dice1 == dice3
- dice1이 다른 dice2,3과 같을 때 dice1을 주어로 내세우겠다는 거예요
- else dice2
- 그 외에는 dice2를 주어로 하겠다는 거죠
- else:
print(max(dice1, dice2, dice3)*100)- 나머지는 주사위 세 개 모두 다를 때 max()함수를 써서 최댓값으로 곱해주었습니다.
#1트
dice1, dice2, dice3 = map(int,input().split())
dice = [dice1, dice2, dice3]
prize_same3 = 10000 +dice *1000 # 뭐가 같은 숫자인지 어케 판별하냐 이거
prize_same2 = 1000 +dice *100
nothing_same_prize = max(dice)*100
if dice1==dice2==dice3: # 주사위 모두 같은 숫자일 때
print(prize_same3)
elif :
print(prize_same2)
제 첫 번째 전적이에요
그래도 정답 코드와 처음부터 유사하게 다가온 거 같아요! (나름,,)
#2트 (TypeError)
dice1, dice2, dice3 = map(int,input().split())
dice = [dice1, dice2, dice3]
prize_same3 = 10000 +dice *1000
prize_same2 = 1000 +dice *100
nothing_same_prize = max(dice)*100
if dice1==dice2==dice3:
print(prize_same3)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
print(prize_same2)
else:
print(nothing_same_prize)
#3트 "틀렸습니다"
dice1, dice2, dice3 = map(int,input().split())
if dice1==dice2==dice3:
print(10000 +dice1 *1000)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3: # 여기서 같은 숫자 어케 판별함?
print(1000 +dice1 *100)
else:
print(max(dice1, dice2, dice3)*100)
#4트 "맞췄습니다"
dice1, dice2, dice3 = map(int,input().split())
if dice1==dice2==dice3:
print(10000 +dice1 *1000)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2 # 이렇게군
prize = 1000 + same_number * 100
print(prize)
else:
print(max(dice1, dice2, dice3)*100)
다른 동기님 덕분에 문제를 해결할 수 있었습니다 🥰
감사합니다 히히
이렇게 해서 백준(입출력과 사칙연산, 조건문)의 두 가지 제목이 끝났어요!
내일부터는 백준_for문 문제를 풀어볼 겁니다!
저녁(19:00 ~ 21:00)
3. 머신러닝 특강_2
3.1. 다항식
3.2. 다항 선형회귀 사례
3.3 이중 분류
🔥 추가 정보
- 0은 False을 의미하는 값입니다
- 1은 True를 의미하는 값입니다
- 기준은 0.5를 기준으로 합니다
마무리
오늘은 두 문제만 풀었네요
음,,
그래도 한 문제 한 문제 접근방식을 스스로 깨달으면서 꾸준히 한다는 게, 그게 정말 어려운 거라 생각해요
솔직히 인터넷에 문제 이름 검색하면 답을 바로 알 수 있잖아요
오늘 진짜,,, 그러고 싶었거든요
그래도 참고 스스로 끝까지 머리 굴리며 해봤어요 ㅎㅎㅎ
아구~ 잘했어요 민경이~
아! 그리고
알고리즘 문제를 풀다보면서 느낀 거지만
식별자 명칭을 명확히 표시해야겠더라구요
저는 문제를 장시간 오래 봐서 뭐가 뭔지 알잖아요?
근데
힌트를 얻으러 갈 때나, 다른 분께 의견을 물어보면서 제 코드를 보여드릴 때
가독성이 떨어진다고 해야 할까요? 바로 식별하기 어렵겠더라구요
그래서
식별자 명칭에 신경 쓰면서 코드를 짜려고 해요
좋은 습관을 하나 찾은 걸지두요 🤭
어쨌든
오늘도 모두들, 수고 많으셨어요!
좋은 밤 보내세요 🤭
'📕 내일배움캠프 TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 본캠프 19일차_코드 카타, 베이직반 수업 (0) | 2024.12.19 |
---|---|
[TIL] 내일배움캠프 본캠프 18일차_코드 카타, 프로그래머스, git 특강(브랜치, 머지) (3) | 2024.12.18 |
[TIL] 내일배움캠프 본캠프 16일차_프로그래머스, 특강 3개 (2) | 2024.12.16 |
[TIL] 내일배움캠프 본캠프 15일차_ 코드 카타, git 특강 (0) | 2024.12.13 |
[TIL] 내일배움캠프 본캠프 14일차_코드 카타, 프로그래머스 7일차 (2) | 2024.12.13 |