알고리즘(42)
-
최대공약수와 최소공배수 [ Python ] [ 백준 : 2609 ]
풀이 및 회고 사실 오늘 수학관련 문제로 많이 힘들었기에 기분전환으로 쉬운문제를 풀기로 하였다. 최대공약수는 math 라이브러리의 gcd 를 통해 구할 수 있고, 최소공배수는 math 라이브러리의 lcm 으로 구할 수 있다. 하지만 쉬운문제를 푼다고 기분이 나아지지는 않더라.. 오히려 허무했고 다음에 기분전환할때는 생각할 수 있는 문제를 풀어야겠다. 약간 자료구조 관련된걸로 ㅇㅇ # 최대공약수와 최소공배수 import math n,m = map(int, input().split()) print(math.gcd(n, m)) print(math.lcm(n, m))
2023.05.30 -
피보나치 함수 [ Python ] [ 백준 : 1003 ]
풀이 및 회고 처음은 보여지는 코드 그대로 파이썬으로 옮겨서 적었고 제출했다. 그러나 바로 시간초과 오류가 발생하였고 코드를 줄여야만 했는데 피보나치 수열을 모르는 나로써는 이는 너무 어려운일이었다. 30~40 분 동안 피보나치 수열이 무엇인지 찾아보고 줄일 수 있는 방법을 찾아보는데 실패했다. 매니저님의 수학관련 문제는 너무 시간을 많이 쏟지 말라고 들었다. 수학 공식을 모르면 풀 수 없기 때문에 답을 보고 학습을 하는 것을 추천하셨다. 우리는 답을 보았고 본 다음 이해하려하며 문제를 보고 적는 것이 아닌 이해한 바탕으로 문제를 적고 풀었다. 약간 오픈북느낌이라 조금 찝찝하긴 하다. 공부가 더 필요하다 # 피보나치 함수 # before================================== # z..
2023.05.30 -
K 번째 수 [ Python ] [ 백준 : 1300 ]
풀이 및 회고 문제 이해도 어려웠고 정말 정말 정말 정신이 나갈거 같은 문제였다. 단순하게 리스트에 넣어 곱한 값을 출력하였으나 바로 메모리 초과가 발생했다. 이를 줄여야하는데 이를 위해 규칙성을 찾는 것이 첫번째 목표였다. 1 x 1 = 1 1 x 2 = 2
2023.05.30 -
암기왕 [ Python ] [ 백준 : 2776 ]
풀이 및 회고 팀원들과 따로따로 풀고 문제를 공유해보기로 하였다. 그런데 다른팀원은 엄청 빨리 풀었던것 같았다. 내가 잘못되었나 느꼈지만 그래도 내가 생각한 방식으로 끝까지 풀어나갔다. 나는 이분 탐색으로 풀꺼야 !! 풀었지만 허탈했다. 다른분 코드를 보니 너무 간단했고 set 을 사용해 더 쉽게 하셨다. 나만 어렵게풀었엉ㄹㄹㅈ대ㅑ햊ㅇ달우랴ㅕㅈㅇ퓡잪ㅈ추ㅕ뷰피앞비ㅑㅍㅇ주 그래도 이분 탐색에 대해 복습했다고 생각합니다. 하하하 # 암기왕 t = int(input()) for case_t in range(t): n = int(input()) # n 을 입력받는다. n_list = list(map(int, input().split())) # n_list 를 입력받는다. n_list.sort() m = int(i..
2023.05.29 -
분해합 [ Python ] [ 백준 : 2231 ]
풀이 및 회고 문제이해하는데 조금 시간이 걸렸던 문제였습니다. 조금 애먹었던 문제임 # 분해합 num = int(input()) result = 0 for i in range(num): list_1 = list(map(int, str(i))) # [1, 9, 8] sum_num = sum(list_1) # 18 if num == i + sum_num: # i = 198 # num = 216 이랑 198 + 18 이 같으면 result 에 저장 하고 반복문 종료 result = i break print(result)
2023.05.29 -
블랙잭 [ Python ] [ 백준 : 2798 ]
풀이 및 회고 반복문이 여러번들어가면 의심하라는 말이 있었는데 그말을 안믿게된 문제였다. 이 문제는 반복문이 3번들어간다. 이제 그말 안믿을거임 # 블랙잭 n,m = map(int,input().split()) data = list(map(int,input().split())) data.sort() munyeol = [] for i in data: for j in data: if i == j: continue for k in data: if i == k: continue if j == k: continue # print("------") # print("i:", i ,"j:", j, "k:", k) # print(i + j + k) sum_num = i + j + k if sum_num
2023.05.29