인사말

안녕하세요~!

오늘이 역대급으로 추운 날이래요! 다들 감기 조심하세요!

운전 조심하시구요!

오늘도 파이팅입니다~!

 

오늘의 일정
오전(09:00 ~ 13:00) 09:00~10:00 코드카타 및 팀 오전 회의
10:00~10:30 개인 과제 발제
11:30~13:00 베이직반 수업
오후(14:00 ~ 18:00) 14:00~16:10 Git 특강
16:10~17:00 Git(브랜치, merge) 다시 해보기
17:00~18:00 TIL 작성
저녁(19:30 ~ 21:00) 19:00~21:00 프로그래머스 4문제

 


요약

  1. 코드 카타 3문제(09:00~10:00)
    1. 문자열 안에 문자열
    2. 특정 문자 제거하기
    3. 아이스 아메리카노
  2. 개인 과제 발제(10:00~10:30)
  3. 베이지반 수업(11:30~13:00)
    1. 조건문 쓸 때 주의할 점
    2. 조건 표현식 (Conditional Exprossion) == 삼항 연산자(Ternary Operator)
    3. enumerate() 함수
    4. pass
  4. Git 특강 (14:00~16:10)
    1. 명령어 복습
    2. 브랜치
    3. Merge
  5. 프로그래머스 4문제 풀이(19:00~21:00)
    1. 개미 군단
    2. 가위 바위 보
    3. 숨어있는 숫자의 덧셈(1)
    4. 대문자와 소문자

오전(09:00 ~ 13:00)

1. 코트 카타

1.1. 문자열 안에 문자열

def solution(str1, str2):
    if str2 in str1:
        answer = 1
    else:
        answer = 2
    return answer

 

🤔 문제 풀이

  • if str2 in str1: answer = 1
    • 만약에 str1 안에 str2가 있다면 1로 출력해 주세요
  • else: answer = 2
    • 그게 아니라면 2를 출력할게요

 

1.2. 특정 문자 제거하기

def solution(my_string, letter):
    answer = ''
    
    for i in my_string:
        answer = my_string.replace(letter, '') 
        
    return answer

 

🤔 문제 풀이방법

  • my_string에서 letter를 지울 거예요
  • for i in my_string: answer = my_string.replace(letter, '')
    • my_string을 순차적으로 순회할게요
    • .replace() 함수를 써서 letter를 공백으로 바꿔줬어요

다른 사람 풀이 

 

def solution(my_string, letter):
    str_l = list(my_string)
    
    while letter in str_l :
        str_l.remove(letter)
        
    answer = ''.join(str_l)
    
    return answer

 

🤔 문제 풀이방법

  • my_string을 list로 변환하여 str_l로 저장
  • str_l에 letter가 있는 동안 반복해서 실행
    • remover() 함수를 사용하여 str_l에서 letter을 지워준다.
  • join() 함수를 사용하여 srt_l을 다 붙여주기!

 

💬

join이라는 함수가 보이더라구요 신기했어요

저게 어떤 식으로 출력되는 건지 궁금해서 VSCode로 돌려봤어요

def solution(my_string, letter):
    str_l = list(my_string)
    while letter in str_l :
        str_l.remove(letter)

    answer = ''.join(str_l)
    return answer

a = solution("abcdef","f")
print(a)

 

와,, 진짜 신기해요 ㅋㅋㅋㅋㅋㅋ

표현법이 다양한 세계라 그런지 신기하네요

하나 더 배워갔어요 ㅎㅎ

 

1.3. 아이스 아메리카노

def solution(money):
    answer = []
    coffee = money % 5500
    
    if coffee == 0:
        answer = [money // 5500, 0]
    else:
        answer = [money // 5500, money % 5500]

    return answer

 

🤔 문제 풀이방법

  • answer = []
    • 최대로 마실 수 있는 커피 잔 수와, 거스름돈을 담을 리스트를 만들어줄게요
  • coffee = money % 5500
    • 커피의 잔 수는 money%5500입니다
  • if coffee == 0: answer = [money // 5500, 0]
    • 만약에 coffee가 나머지가 없는 경우, money//5500을 해줄게요. 그리고 거스름돈은 0원입니다
  • else: answer = [money // 5500, money % 5500]
    • 다른 경우는 coffee가 나머지가 있는 경우겠죠
    • 커피의 잔은 몫으로 구해주고, 잔 돈은 나머지로 구해주면 끝입니다

다른 사람 풀이 

def solution(money) :
    return [money//5500, money%5500]

 

이렇게 간단하게 표현할 수 있다는 거,, 배워갑니다 핳ㅎ

 

(10:00~10:30)

2. 개인 과제 발제

개인과제가 머신러닝 관련해서 발제되었어요 😞

 

머신러닝의 지도학습과 비지도학습에 대한 과제를 받았어요

12월 31일까지 마감이네요

잡생각 가지지 말고 그냥 해보려구요

 

(11:30~12:30)

3. 베이직반 수업

3.1. 조건문 쓸 때 주의할 점

  • 문자열은 ""일 때 false값을 출력함 (공백은 비어있다고 판별하지 않음)
  • 정수형 0이 false값
  • 빈 리스트일 때 false
  • 리스트, 딕셔너리, 튜플 == 컨테이너 타입

 

3.2. 조건 표현식 (Conditional Exprossion) == 삼항 연산자(Ternary Operator)

  • 개념 : if문을 줄 바꿈을 쓰지 않고 한 줄로 쓰는 것
age = 22
display_str = ""

if age >= 19:
	display_str = "어른이군요"
else:
	display_str = "어린이군요"
display_str = "어른이군요" if age >= 19 else "어린이군요"
print(display_str)

 

 

 

3.3. enumerate() 함수

for number, name in enumerate(name_list):
	print(f"{number}번 {name}님")

 

 

3.4. pass

  • 개념 : 추후, 코드를 다시 쓸 때를 표시함
  • 특징
    • 오류 뜨지 않도록 하려고 씀
    • 구성 맞춰놓는 공기 같은 존재

 

if문을 아직 완성시키지 않은 상태잖아요

그럼 당연히!! 오류가 나죠

 

하지만, pass를 적어준다면 오류가 발생하지 않습니다

나중에 다시 찾아와서 조건문을 완성시켜 주면 되겠죠? 🤭


오후(14:00 ~ 18:00)

베이직반 수업이 끝나니까 점심시간이 되었더라구요!

다들 식사 맛있게 하셨나용?

오후에는 Git 특강이 있어서 들은 후에 다시 직접 해보면서 시간을 보냈어요!

 

(14:00~16:10)

4. Git 특강

4.1. 명령어 복습

local 명령어 설명 remote 명령어 설명
git init 현재 폴더를 깃으로 관리하겠다 git remote add origin {url} 원격 저장소에 repo 추가하기
git status 깃 상태 확인 git push {origin master/main} git hub에 넣기
git add 깃을 SA에 추가
(staging area)
git clone {repo_url} repo를 local에 연결하기
git commit -m "" 커맨드 메시지 남기기 git pull origin master/main repo에서 local로 파일 받아오기
git log 깃 전적 검색    
명령어 설명
.gitignore 깃 허브에 올릴 시, 표시하지 않고 싶을 때 씀
(폴더, 파일 모두 가능)

 

4.2. 브랜치

명령어 설명
git switch -c {branch_name} 브랜치 생성 또는 이동
git switch {branch_name} 해당 브랜치로 이동

 

4.3. Merge

명령어 설명
git merge {branch_name} 브랜치를 합치는 명령어

 

 

강의가 끝난 후 직접 git hub에서 해보았어요

 

너~무 어렵고 너~무 재밌어요

물론 튜터님과 함께 해서 했지만요,, ㅋㅋㅋㅋㅋㅋㅋㅋ

그래도!

"~~ 하세요!"라고 하시면 제가 명령어를 적긴 적었어요!!

 

저번주 주말에 git 명령어 복습을 해보길 잘한 거 같네요 ㅎㅎ


저녁(19:00 ~ 21:00)

5. 프로그래머스 4문제

5.1. 개미 군단

def solution(hp):
    general_ant_count = hp//5
    soldier_ant_count = (hp - (5*general_ant_count))//3
    worker_ant_count = (hp - (5*general_ant_count) - (3*soldier_ant_count))//1
    
    answer = general_ant_count + soldier_ant_count + worker_ant_count
    
    return answer

 

🤔 문제 풀이

  • hp가 주어지고, 최소한의 개미 수를 통해서 사냥을 갈 겁니다!
  • 장군개미는 5의 공격력, 병정개미는 3의 공격력, 일개미는 1의 공격력이에요

🧐 코드 풀이

  • general_ant_count = hp//5
    • 먼저 장군개미만 출격하는 경우를 몫으로 구해줬어요
  • soldier_ant_count = (hp - (5*general_ant_count))//3
    • soldier_ant_count =
      • 두 번째로는 병정개미만 출격하는 경우는
    • (hp - (5*general_ant_count))
      • hp에서 (장군개미가 출격한 몫에 곱하기 5의 공격력을 해준 값에 뺀 후의 값에
    • //3
      • 병정개미의 공격력을 몫으로 나눠줬어요. 그럼 병정개미의 수가 나오겠죠!?
  • worker_ant_count = (hp - (5*general_ant_count) - (3*soldier_ant_count))//1
    • 병정개미의 수를 구할 때와 비슷한 구조로 흘러갑니다!
    • 대신 이번에는 hp에 장군개미 수와 병정개미 수를 빼주어야겠죠!
  • answer = general_ant_count + soldier_ant_count + worker_ant_count
    • 그 뒤 총 출격하는 개미의 수를 더해주면 문제는 풀립니다!

 

5.2. 세균 증식

def solution(n, t):
    
    return n*(2**t)
어떤 세균은 1시간에 두 배로 증식한다고 합니다.

 

🤔 문제 풀이

  • 처음 주어진 세균 수가 n이죠 여기에 시간(t)이 지날수록 2배로 늘어난다 했으니까 제곱근!으로 해준 뒤 처음 세균 수에 곱해줍니다
  • 그러면 문제가 해결된답니다 🥳

 

5.3. 가위 바위 보

def solution(rsp):
    answer = ''
    
    for i in rsp:
        if i == '2':
            answer += '0'
        elif i == '0':
            answer += '5'
        else:
            answer += '2'
    return answer
가위 == 2
바위 == 0
보 == 5

 

🤔 문제 풀이

  • 문제를 보자마자 for문으로 돌려줬어요
  • 문자열로 나타내라 했으니까 for문 안에는 모두 ''을 달아줄게요
  • for i in rsp:
            if i == '2':
                answer += '0'
    • rsp 속 문자열을 하나하나 i에 받았어요
    • 만약 i가 '2'라면 '가위'죠?
    • answer은 '보'인 '0'이 나오면 이기겠죠! 그걸 answer에 바로 넣어줄게요(+=)
  • elif i == '0':
                answer += '5'
    • 다음으로 i가 '바위'인 '0'이라면
    • answer은 '보'인 '5'가 나오게끔 설정하고 answer에 바로 넣어줄게요(+=)
  • else:
                answer += '2'
    • 남은 경우는 i가 '보'인 경우밖에 없어요
    • 그렇기에 answer에는 '가위'인 '2'만 추가해 주면 문제 해결!

 

5.4. 숨어있는 숫자의 덧셈(1)

def solution(my_string):
    answer = 0
    number = ['0','1','2','3','4','5','6','7','8','9']
    
    for i in range(len(my_string)):
        if my_string[i] in number:
            answer +=int(my_string[i])
            
    return answer

 

🤔 문제 풀이

  • number = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
    • 주어지는 my_string에서 숫자만 뽑아내기 위해서 숫자 리스트를 만들어주었어요
  • for i in range(len(my_string)):
            if my_string[i] in number:
                answer +=int(my_string[i])
    • for문으로 range() 함수를 돌려줄 거예요. 얼마큼요? my_string의 len(길이) 만큼요!
      • range() 함수는 변숫값만큼 범위를 주는 함수죠!
    • 만약 my_string[i] 값 중에서 number 리스트에 있는 숫자라면
    • answer은 int(my_string[i]) 한 걸 바로 더하면서 출력해 줄게요(+=)
    • 그러면 문제 해결! 🥰

마무리

 

TIL을 꾸준히 쓰고 열심히 했더니 우수자로 뽑혔어요!

너무 뿌듯하고 자랑스러웠어요

 

오늘 강의들도 다 너무 재미있었고, 머리에 새로운 지식들이 들어와서 그런지 기분 좋은 하루였어요 😋

게다가 프로그래머스도 문제가 잘 풀려가지고 빠른 시간에 해결했답니다! 😋 

 

이제 개인 과제인 머신러닝만 잘하면 될 거 같아요!

파이팅!!

 

모두들 오늘 하루도 수고 많으셨습니다

감기 조심하시고, 푹 쉬세요! 🥳 

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)

 

첫 번째로 시도한 코드들인데, 저 많이 성장한 게 보이지 않나요?

문제 보자마자 우르르 쓴 게 신기했어요

원래 하얀 백지에 선뜻 손 올리기가 어렵잖아요, 하지만 저는 얼마든지 더럽히는 거엔 서슴없거든요

근데 뭘 알아야 더럽히죠 ㅋㅋㅋ,,

이제는 어느 정도 마음껏 더럽힐 수 있어요! 

 

하지만 elif로 들어가는 순간 막혔어요 ㅋㅎ

 

#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)

 

2트에서는 TypeError로 틀렸어요

그래서 리스트로 하지 말고, 해봐야겠다 싶더라구요

elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    print(prize_same2)

그리고!

elif문을 노가다로 써보았어요 어떻게든 문제는 풀고 싶었거든요!

 

#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)

 

자! 리스트는 없애주고 하나하나 적어주었어요

근데 그냥 "틀렸습니다"라고 하네요? ^^

 

그래서 코드랑 눈싸움했어요

elif문이 문제인 게 뻔히 보이더라구요

elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:    # 여기서 같은 숫자 어케 판별함?
    print(1000 +dice1 *100)

 

저 중에서 어떤 게 같은 숫자 2개이고, 뭐를 print()해줘야 할지를 명확히 해줘야 하잖아요

 

#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)

 

🤔 문제 풀이

  • elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    • same_number = dice1 if dice1 == dice2 or dice1 == dice3
      • 여기까지가 dice1에 대한 조건문이에요 dice1이 dice2와 3과 같으면 dice1로 할 거란 거예요!
    • else dice2
      • 그 외에는 dice2로 끌고 올게요!
    • prize = 1000 + same_number * 100
      • 주사위 2개가 같을 때의 식별자를 same_number로 했기 때문에 주사위 자리엔 식별자를 넣었어요!

이번에도 도움을 여기저기 많이 받은 문제였어요

캬~

도와주셔서 감사하고, 더 배워갈 수 있도록 해주셔서 감사해요

파이팅~!

인사말

안녕하세요~!

비염과 함께 화려한 콧물 등장입니다 🤣

아침부터 물 같은 콧물 때문에 힘드네요 키키키

 

화요일이에요!

저희, 오늘도 파이팅 해봅시다 🔥💘

 

오늘의 일정
오전(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

요약

  1. 코드 카타
    1. 문자열 뒤집기
    2. 편지
    3. 점의 위치 구하기
  2. 백준 (조건문)
    1. 오븐 시계
    2. 주사위 세 개 
  3. 머신러닝 특강_2
    1. 다항식
    2. 다항 선형회귀 사례
    3. 이중 분류

오전(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를 기준으로 합니다

마무리

오늘은 두 문제만 풀었네요

음,,

그래도 한 문제 한 문제 접근방식을 스스로 깨달으면서 꾸준히 한다는 게, 그게 정말 어려운 거라 생각해요

 

솔직히 인터넷에 문제 이름 검색하면 답을 바로 알 수 있잖아요

오늘 진짜,,, 그러고 싶었거든요

그래도 참고 스스로 끝까지 머리 굴리며 해봤어요 ㅎㅎㅎ

아구~ 잘했어요 민경이~

 

아! 그리고

알고리즘 문제를 풀다보면서 느낀 거지만

식별자 명칭을 명확히 표시해야겠더라구요

 

저는 문제를 장시간 오래 봐서 뭐가 뭔지 알잖아요?

 

근데

힌트를 얻으러 갈 때나, 다른 분께 의견을 물어보면서 제 코드를 보여드릴 때

가독성이 떨어진다고 해야 할까요? 바로 식별하기 어렵겠더라구요

 

그래서

식별자 명칭에 신경 쓰면서 코드를 짜려고 해요

좋은 습관을 하나 찾은 걸지두요 🤭 

 

어쨌든

오늘도 모두들, 수고 많으셨어요!

좋은 밤 보내세요 🤭 

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)

 

🤔 문제 풀이

  • 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시가 필요하니까요

실패 흔적들 

#1트 - TypeError
h, m =int(input().split())
cooktime = int(input())

if h >= 24:
     h -= 24
elif m >= 60:
     h += 1
     m -= 60
elif m < 60:
     m += cooktime
     
print(h,m)

 

🤔 문제 풀이

  • 제가 생각하는 조건들만 우르르 적어보았어요
  • 제가 문제 푸는 스타일이 문제를 읽으면서 떠오르는 코드들을 나열하거든요 ㅎㅎ;
  • h, m =int(input().split())
    • map 함수를 하지 않았더니 TypeError가 나더라구요
함수 설명 예시
map(function, iterable)
  • function: 각 요소에 적용할 함수.
  • iterable: 함수가 적용될 리스트, 튜플, 집합 등.
# 두 리스트에서 같은 위치의 값들을 더하는 함수
def add(x, y):
    return x + y

list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 두 리스트에서 같은 위치의 값을 더하기
result = map(add, list1, list2)

# 결과를 리스트로 변환하여 출력
print(list(result))  # [5, 7, 9]

 

  • 그래서 map 함수를 다시 보고, 2트로 넘어갔습니다.
    • 왜 다시 보았냐면, "map 안 써도 되지 않나?" 라고 생각했거든요

 

#2트 "틀렸습니다"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60  # cooktime에다가 60을 나눴을 때 몫이 나온다면 그 몫을 더해주기
m += cooktime %60   # cooktime에다가 60을 나눴을 때 나머지를 다온다면 더해주기

if h >= 24:
   h -= 24
elif m >= 60:
     h += 1
     m -= 60
elif m < 60:
     m += cooktime
     
print(h,m)

 

🤔 문제 풀이

  • h, m =map(int,input().split())
    • h, m을 각각 int형으로 변환해주고, input 받을 겁니다!
  • h += cooktime //60
    • 이걸 왜 썼냐면요, cooktime이 60분으로 나누어주었을 때 몫이 생기면 시간에 +1을 해주기 위해서예요
  • m += cooktime %60
    • 반면에 분을 구할 때는 나머지(%)로 해주었습니다
    • 예를 들어 61%60을 하면 나머지 1이 발생하죠? 그게 1분으로 남게끔요!

하지만 정답으로는 틀렸다고 뜨더라구요 🤔

뭐가 문제일지 멍- 때리면서 고민했어요 흐음

 

#3트 "틀렸습니다"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60

if m >= 60:
    h += 1
    m -= 60
elif m < 60:
    m +=cooktime
    
if h >= 24: # h는 따로 조건문을 줘야 하나? 라고 생각했음
    h -= 24

print(h,m)

 

그래서 도달한 생각이 변수 h와 m를 각각 조건을 줘야 하나..? 했어요

하지만 틀렸죠 ( ͡° ͜ʖ ͡°) 

근데 이렇게 따로 조건을 줘야할 거 같아서 그대로 유지했답니다

 

#4트 "정답"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60

if m >= 60:
    h += 1
    m -= 60
    
# elif m < 60:  # 이미 위에서 m에 대해 정의 내렸기 때문에 삭제해봄
#     m +=cooktime

if h >= 24:
    h -= 24

print(h,m)

 

대체 뭐가 문제인지,, 🤦🏻‍♀️

제가 만든 코드와 눈싸움을 해봤어요

생각해보니까 위에서 m에 대해 할당을 해놓고 밑에서 elif로 또 조건을 줬더라구요 그래서 삭제해보았더니

정답!!!! 드디어 정답!!!


저번에 알람 시계 문제도 그렇고

시간 계산하는 거를 정말 못하는 거 같아요

앞으로도 시간 관련 문제를 좀 더 접해봤으면 좋겠어요

인사말

안녕하세요~!

금주의 시작을 알리는 월요일입니다!

다들 파이팅 해보자구요! 😚

 

저는 월요일을 좋아해요

많은 사람들이 움직이고 활동하고 일하기 시작하는 날이잖아요!

그리고, 주말 동안 보지 못 했던 사람들도 만나는 날이라서 좋아해요 🥰

오늘은 특강과 수업이 있기 때문에 개인 공부를 할 시간이 부족해서 오버해서라도 공부했답니다

 

바쁘다 바빠요~!

 

오늘의 일정
오전(09:00 ~ 13:00) 09:00 ~ 10:00 코드 카타 3문제 및 팀 오전 회의
10:00 ~ 13:00 프로그래머스 8일차 문제 풀기(4문제)
오후(14:00 ~ 18:00) 14:00 ~ 16:00 통계학 특강3
16:00 ~ 17:00 프로그래머스(순서쌍의 개수)
17:00 ~ 18:00 베이직반 수업 (AI 논문 요약 후기 및 설명)
저녁(19:30 ~ 21:00) 19:00 ~ 21:00 머신러닝 특강

요약

  1. 코드 카타
    1. 배열 뒤집기
    2. 중복된 숫자 개수
    3. 배열 자르기
  2. 프로그래머스 8일 차 문제(배열, 구현, 수학)
    1. 배열 자르기
    2. 외계행성의 나이
    3. 진료순서 정하기
    4. 순서쌍의 개수
  3. 통계학 특강
  4. 베이직반 수업
  5. 머신러닝 특강

오전(09:00 ~ 13:00)

1. 코드 카타

1.1 배열 뒤집기

def solution(num_list):
    return list(reversed(num_list))
reversed() 내림차순으로 정렬 리스트화를 해주어야 하는 특징이 있음

 

🤔 함수 설명

오름차순으로 정렬하는 함수는 sort()에요!

내림차순은 reversed()랍니다! 타입이 변환되어 출력이 돼요 그래서 형변환이 필요한 아이랍니다!

 

 

1.2 중복된 숫자 개수

def solution(array, n):
    answer = 0
    count_n = array.count(n)
    return count_n

 

🤔 문제 풀이

.count() 범위 내에서 ()의 개수를 세는 함수

 

저는 문제를 보자마자 .count() 함수가 생각이 나더라구요

그래서 .count()를 어떻게 활용하는지 찾아보고 시도해 보았습니다

 

1트만에 맞춰서 조금 당황했어요,, 👀

열심히 공부를 한 보람을 자주 느끼는 요즘이네요 🤭

 

ps. answer=0은 사용되지 않으니 삭제해도 되는 코드였대요!

 

 

1.3 배열 자르기

1트

 

🤔 문제 풀이

식별자[시작 위치 : 끝 위치] 식별자의 시작 위치에서 끝 위치 만큼 자름

 

"num1번째 인덱스부터 num2번째 인덱스까지 자른"이라는 문장을 보자마자

슬라이싱을 해야겠다고 떠올랐어요

 

근데, 틀렸죠? 🤣

실행 결과를 보니까 num2 그대로 적으니까 포함이 안 되더라구요

얘도 range()와 똑같은 원리인 거 같아서

def solution(numbers, num1, num2):
    return numbers[num1:num2+1]

 

num2에서 +1을 해주었더니 풀렸습니다!

 

한 번 틀리고 바로 다음 차례에 해결해 버리다니 ㅠㅠㅠ

감격스러워서 감동했어요 (ू˃̣̣̣̣̣̣︿˂̣̣̣̣̣̣ ू) 

 

 

이렇게 코드 카타를 해결하고!

저는 프로그래머스 8일 차 문제를 풀었습니다~! ㅎㅎ

 

(10 : 00 ~ )

2. 프로그래머스 8일 차 문제(배열, 구현, 수학)

2.1. 배열 자르기

코드 카타에 있던 문제라서 설명 패스합니다!

 

2.2. 외계행성의 나이

for문 특징 in 뒤에는 리스트, 튜플 등으로 문자열로만 올 수 있어요!
정수형으로는 반복이 불가능하기 때문에 형변환(str)을 해주어야 해요!
def solution(age):
	alphabet = ["a","b","c","d","e","f","g","h","i","j"]
    answer = ''
    
    for i in age:
    	answer += alphabet[int(i)]
    return answer

 

#1 문제 어떻게 풀 건지 구상하기
def solution(age):
alphabet = [a,b,c,d,e,f,g,h,i,j]
    answer = ''
    
    for i in alphabet:
    	answer += age
    return answer

 

일단 알파벳이라는 리스트를 만들어주었어요

알파벳 하나하나가 숫자를 가지게 될 거니까요!

 

#1트
def solution(age):
	alphabet = [a,b,c,d,e,f,g,h,i,j]
    answer = ''
    
    for i in alphabet:
    age =map(str, i.split())
    	answer += age
    return answer

 

단순히 생각해서 map() 함수로 해보려 했는데 오류가 뜨더라구요

NameError: name 'a' is not defined

 

대체 뭐가 문제인지 몰랐어요

제가,, 여기서,, 저의 허점을 깨달았습니다,, 예,,

리스트 안에 문자열로 넣어야 하는데,

alphabet = [a,b,c,d,e,f,g,h,i,j]

 

이렇게 입력했잖아요,, 🙄

 

#2트
def solution(age):
	alphabet = ["a","b","c","d","e","f","g","h","i","j"]
    answer = ''
    
    for i in age:
    	answer += alphabet[i]
    return answer

 

그래서 리스트에 있는 것들은 다 문자형으로 바꿔주고

for문을 수정하였어요,,

근데 또!! 오류가 뜨네요?

TypeError: 'int' object is not iterable

 

int형이라서 안 된대요,, 하하하

age가 생각해 보니까 나이로 돼 있어서 두 자릿수잖아요

alphabet 리스트에는 a~j까지만 있어서 택도 안 돼요,,

 

#3트
def solution(age):
	alphabet = ["a","b","c","d","e","f","g","h","i","j"]
    answer = ''
    
    for i in str(age):
    	answer += alphabet[i]
    return answer

 

그래서 age를 형변환 해주었습니다 그랬더니 alphabet[i] 부분이 오류가 나서

 

#4트
def solution(age):
	alphabet = ["a","b","c","d","e","f","g","h","i","j"]
    answer = ''
    
    for i in age:
    	answer += alphabet[int(i)]
    return answer

 

alphabet[int(i)]로 수정해 주었어요

 

 

와,, 진짜 열받더라구요,, 와,,

형변환을 몇 번이나 한 거야,, 😫

어쨌든 풀어서 다행입니다,,

주말에 조건문 문제만 푼다고, for문은 못 풀었더니

아니나 다를까, 헤매고 있네요 하하하핳

 

다른 사람들 풀이 

 

처음 보는 함수가 나왔어요

translate()이랑 .maketrans()를 처음 보았어요

공부해야 할 게 정말 많네요,, 쩝

 

 

2.3. 진료순서 정하기

def solution(emergency):
    answer1 = []
    answer2 = []
    answer2 = sorted(emergency, reverse=True)
    
    for i in emergency:
        answer1.append((answer2.index(i)+1))

    return answer1

🤔 문제 풀이

  • answer1 = []
    • emergency의 값을 넣어줄 비어있는 리스트입니다
  • answer2 = sorted(emergency, reverse=True) :
    • answer1에 주어진 emergency 숫자 리스트를 정렬해 주고, 내림차순으로 정리한 게 answer2가 될 거예요
  • for i in emergency:
    • 이제 emergency에 있는 숫자들을 순차적으로 순회할 겁니다
  • answer1.append((answer2.index(i)))
    • for문을 어떻게 돌릴 거냐면요. answer2.index(i)를 answer1에 추가해 줄 겁니다
    • answer2.index(i)는 emergency에 있는 숫자의 위치를 answer2에서 찾는 코드예요
      • 그래야 가장 큰 값 순서대로 번호를 매길 수 있거든요
    • 그 찾은 위치를 answer1(리스트)에 추가해줄 겁니다
  • return answer1
    • 결괏값을 answer1에 넣었기 때문에 answer1을 출력해 주면 문제 해결입니다.
list.index(element, start, end) element: 찾고자 하는 값
start (옵션): 검색을 시작할 인덱스 (기본값은 0)
end (옵션): 검색을 끝낼 인덱스 (기본값은 리스트 끝)

 

 

진~~~~짜 힘들었어요

와,, 접근 자체를 못하겠더라구요,,

그래도 해내서 보람찼습니다,,

 

#1 어떻게 풀지 구상하기
def solution(emergency):
    answer = []

    for i in emergency:

    answer +=
    return answer

 

처음에는 이렇게 풀어내고 싶었어요 

근데 안 되겠더라구요

도저히 완성해 낼 자신이 없었어요,,

 

그래서 튜터님께 가서 힌트를 받았지용

rank()라는 pandas에 있는 함수예요

 

 

근데 안 되더라구요 🙄

그래서 그냥 파이썬 함수로 해결해 보려 노력했어요,,

 

#1트
def solution(emergency):
	answer1 = []
	answer2 = []

	answer2 = sorted(emergency, reverse=True)

	for i in emergency:
		answer1.append((answer2.index(i)))
        return answer1

 

해당하는 리스트 안에서 찾고자 하는 값이

리스트에 몇 번째 위치에 존재하는지 찾는 함수예요

되게 많이 쓰이는 함수로 보이네요 🤔

 

 

어쨌든, 결괏값을 불러보았는데 0부터 출력이 되더라구요

 

#2트
def solution(emergency):
	answer1 = []
	answer2 = []

	answer2 = sorted(emergency, reverse=True)

	for i in emergency:
		answer1.append((answer2.index(i)+1))
        return answer1

 

그래서 

answer1.append((answer2.index(i)+1))

index(i) 값에 +1을 해줘서 마무리하였습니다 :)

 

 

2.4. 순서쌍의 개수

def solution(n):
    answer = 0

    for i in range(1,n+1):
        if n % i ==0:
            answer +=1
    return answer

 

하,, 저 이런 유형에 약한 거 같아요

매번 공배수, 공약수, 약수, 배수 이런 거 볼 때마다 못 해요 🙄

이번 문제도 약수 문제였죠?

이번에도 접근하지 못해서 튜터님께 힌트를 얻었어요,,

 

🤔 문제 풀이

  • for i in range(1, n+1):
    • 1부터 n+1 한 범위까지 for문 돌려줄게요
    • range()에서 끝 숫자는 포함하지 않으니까 +1을 해줬어요
  • if n % i ==0:
    • if문입니다 주어진 자연수(n)를 1~n까지에 있는 값들로 나눴을 때 나머지가 0이 된다면 그건 n의 약수겠죠
  • answer +=1
    • 앞전에 만들어주었던 answer에 if 조건문에 해당되는 애들을 +1 한 값을 얻어낼 겁니다
  •  return answer
    • return 한 값이 곧, 이 문제의 답이 되는 것이죠

 

한 것도 없는데 오전, 점심시간 다 지나갔네요 ㅠㅠㅠ

하아ㅏ아ㅏ아아아아아아 속상해요 ㅠㅠㅠㅠㅠ


오후(14:00 ~ 18:00)

3. 통계학 특강

14시부터 16시까지는 통계학 특강을 들었어요

 

와,, 머신러닝이 데이터 처리 할 때 이 과정을 거친다는 거죠?

와,, 데이터가 많으면 많을수록 좋다는 게 이거 때문인가 봐요

그래야 걸러야 할 거 거르고 남는 값들이 많아질 테니까요

 

전체적으로 데이터와 그래프, 평균, 분산과 표준편차, 범위와 사분위수 등을 배웠어요

아직 노션을 읽어보진 않아서 이해를 못 한 상태예요

주말에 다시 공부해 봐야겠어요

 

(16 : 00 ~ 17 : 00 )  프로그래머스 순서쌍의 개수 마저 풀기

 

(17 : 00 ~ 18 : 00)

4. 베이직반 수업

논문을 읽어보면서 발표를 듣는 수업이었어요

생각보다 AI가 작업해 주는 건 없고 데이터가 많을수록 더 정교한 값과 그래프가 그려진다는 걸 배웠어요

신기하더라구요 🧐

튜터님께서 CoT는 꼭 읽어보라고 해서 내일 읽을 거랍니다 히히

 


저녁(19:00 ~ 21:00)

5. 머신러닝 특강

 

머신러닝이 저한텐 너무 멀고, 친해질 수 없는 개념이라 생각했는데

오늘 머신러닝 특강을 듣고 나서는 좀,, 친해질 수 있지 않을까라고 생각해 봤어요

강의 들을 때는 이해하기가 너무 힘들었는데 특강을 들으니까 와닿더라구요

 

그래프가 U 모양으로 생긴 경사하강법입니다

이게 0에 가까운 값을 나타낼수록 오차가 없다는 뜻이 되더라구요

그래서 0에 가까워지도록 데이터를 수집하고 분석하고, 모델도 바꿔보고 하는 거 같아요

오류값이 적을수록 그 데이터들은 신뢰도가 높은 자료라는 뜻이잖아요!

 

특강 해주셔서 너무 감사했습니다 ㅠ 구세주세요 튜터님 ㅠㅠ


마무리

오늘도 눈 깜빡하니까 시간이 다 흘러가버렸어요,, 할 게 너무 많네요

그렇지만

열심히 따라가 보겠습니다,,

기본이 되는 게 파이썬이라 생각해서 다른 건 손도 안 대고 있는데, 시간이 많이 부족한 거 같아요 쫄립니다 😞

 

부정적인 생각은 끝도 없이 늘어가면서 하나의 호수를 만들어버린다죠

부정적인 생각을 할 바에 아무 생각도 하지 않으려구요

파이팅입니다 모두들,, 🔥

def solution(n):
    answer = 0

    for i in range(1,n+1):
        if n % i ==0:
            answer +=1
    return answer

 

🤔 문제 풀이

  • for i in range(1,n+1):
    • 1부터 n+1한 범위까지 for문 돌려줄게요
    • range()에서 끝 숫자는 포함하지 않으니까 +1를 해줬어요
  • if n % i ==0:
    • if문입니다 주어진 자연수(n)를 1~n까지에 있는 값들로 나눴을 때 나머지가 0이 된다면 그건 n의 약수겠죠
  • answer +=1
    • 앞전에 만들어주었던 answer에 if 조건문에 해당되는 애들을 +1한 값을 얻어낼 겁니다
  •  return answer
    • return한 값이 곧, 이 문제의 답이 되는 것이죠

하,, 또 너야

또 너야 range()???

이걸 왜 이리 활용을 못할까요 하아ㅏ,,

문제 더 풀어봐야겠어요

제발 친해지자 range()야

 

def solution(emergency):
    answer1 = []
    answer2 = []
    answer2 = sorted(emergency, reverse=True)
    
    for i in emergency:
        answer1.append((answer2.index(i)+1))

    return answer1

 

🤔 문제 풀이

  • answer1 = []
    • emergency의 값을 넣어줄 비어있는 리스트입니다
  • answer2 = sorted(emergency, reverse=True) :
    • answer1에 주어진 emergency 숫자 리스트를 정렬해주고, 내림차순으로 정리한 게 answer2가 될 거예요
  • for i in emergency:
    • 이제 emergency에 있는 숫자들을 순차적으로 순회할 겁니다
  • answer1.append((answer2.index(i)))
    • for문을 어떻게 돌릴 거냐면요. answer2.index(i)를 answer1에 추가해줄 겁니다
    • answer2.index(i)는 emergency에 있는 숫자의 위치를 answer2에서 찾는 코드예요
      • 그래야 가장 큰 값 순서대로 번호를 매길 수 있거든요
    • 그 찾은 위치를 answer1(리스트)에 추가해줄 겁니다
  • return answer1
    • 결괏값을 answer1에 넣었기 때문에 answer1을 출력해주면 문제 해결입니다.

list.index(element, start, end) element: 찾고자 하는 값
start (옵션): 검색을 시작할 인덱스 (기본값은 0)
end (옵션): 검색을 끝낼 인덱스 (기본값은 리스트 끝)

 

앞으로 자주 마주할 것처럼 생겼어요

불쾌하네요 🙄

잘 부탁드릴게요,, 잘 지내봅시다 ㅠㅠ

h,m = map(int, input().split())

if m>44:print(h,m-45)
elif m<45 and h==0:print(23,m+15)
else:print(h-1,m+15)

실패 흔적들 

#1트
h,m = map(int, input().split())

if m > 44:
    print(h,m-45)
elif m < 45:
    print((h-1),((m-45)+15))
#h가 0일 때 어떻게 해야 할지 모르겠음

 

분에만 집착했던 1트,,

 

#2트
h,m = map(int, input().split())

if h==0 and m>44:print(h, m-45)
elif h==0 and m<45:print(,(m+60)-45)  #h를 어떻게 적어야 할지 모르겠음
elif h!=0 and m<46:print()
#아닌 경우를 생각해봐야겠음 (else:)

 

그 후 h를 어떻게 해야 하는지 뒤늦게 깨닫고 고민하기 시작

 

#3트 (백준 돌렸더니 틀렸다캄)
h,m = map(int, input().split())

if m>45:print(h,m+15)               #m이 45보다 클 때
elif m<45 and h==0:print(23,m+15)   #h가 0이고, m이 45보다 작을 때
else:print(h-1,m+15)                #h가 0이 아니고, m이 45보다 작을 때

 

VSCode로 돌렸을 때는 passed로 떠서 드디어 1시간 50분만에 벗어난 거라 생각하고 엄청 좋아했는데

백준에서 돌렸더니 틀렸다하더라구요

열받아서, 순간적으로 빈혈끼 돌았습니다 😤

 

#4트
h,m = map(int, input().split())

if m>45:print(h,m+15)
elif m<45 and h<1:print(23,m+15)       #h<1으로 해봤는데 틀림
else:print(h-1,m+15)

 

이때까지도 m>45 조건의 존재를 모르고 있었어요 ㅋㅋㅋㅋㅋㅋ,,

간과하고 있었더라구요

튜터님께 피드백으로 계속 힌트 얻고, 언니랑 논의하지 않았으면 못 벗어났을 거예요

감사합니다 증말,,, ㅠㅠㅠㅠㅠ ❤️

 

#5트
h,m = map(int, input().split())

if m>44:print(h,m-45)       #m이 45보다 큰 값이니까 -45하면 됨!!!
elif m<45 and h==0:print(23,m+15)
else:print(h-1,m+15)

 

5트가 되어서야 m>44일 때는 그냥 -45를 해버리면 된다는 걸 깨달았어요 😮‍💨

그래도 풀었으니 된 거죠!! 하핫!! 😆

 

x = int(input())
y = int(input())

if x>0 and y>0:print("1")
elif x<0 and y>0:print("2")
elif x<0 and y<0:print("3")
elif x>0 and y<0:print("4")

 

1트만에 풀 줄 몰랐어서 글 쓸 준비하고 있었는데,

1트만에 성공해서 얼떨떨했던 문제였다 👀,,

그리고

오늘 푼 문제 중에서 if문에다가 다른 사람 풀이 중에 콜론 옆에 print() 바로 붙이는 거 보고

그거 따라해봄!! 😎

year= int(input())

if (year%4==0) and (year%100!=0) or year%400==0:
    print("1")
else:
    print("0")

실패 흔적들 

#1트
year= int(input())

if year // 4 ==0:     # 1 나오는 조건이 틀렸음
    if year // 100 !=0:
        print("1")
elif year // 100 ==0:
    if year // 400 ==0:
        print("1")
else:
    print("0")        # 맞았음

 

이제서야 보이는,, 연산자 선택 실수,, 😭

 

#2트
year= int(input())

if year // 4 or 400==0:
    if year // 100 !=0:
        print("1")      # 여기까진 맞았음
else:
    print("0")          # 틀렸음

 

2트만에 수식 짧아진 게 너무 웃겨요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

#3트
year= int(input())

if year // 4 or 400==0 and year //100!=0:
    print("1")
else:
    print("0")      # 왜 틀림..?

 

굳건하게 else:로 풀겠다는 저의 의지가 보이네요 ㅋㅋㅋㅋㅋㅋㅋ

이때까지도 연산자 틀린 걸 못 깨달았어요

 

#4트
year= int(input())

if (year%4==0) and (year%100!=0) or year%400==0:   #아,, 몫이 아니라 나머지를 했어야지,, 하아ㅏ
    print("1")
else:
    print("0")

 

드디어 깨달은 연산자 실수 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

그래도 찾은 게 어디에요!! ㅋㅋㅋㅋㅋㅋ

그러면서 점점 코드가 짧아졌어요 히히 😜

 

 

+ Recent posts