728x90

백준문제풀이 12

백준 알고리즘 - 실버5 #17478(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 오랜만에 백준 문제를 풀었네요. 출장에 머다 하면서 게을러져서 거의 한달을 안풀었네요 ㅜㅜ 골드가 얼마 남지 않았기에 다시 열심히 달려보도록 하겠습니다 오늘은 실버5 #17478번 "재귀함수가 뭔가요?"를 파이썬으로 풀었습니다. 제목에 나온 그대로 재귀함수에 대한 문제입니다 함수안에서 함수를 불러서 계속 반복되게 하여야 합니다 우선 18행에서 반복하여서 나올 수를 받고, 19행에 반복되는 부분이 구분되는 "____"를 카운트할 num을 0으로 설정했습니다 반복되지 않는 첫 문장을 print해주고, 반복될 함수를 불러줍니다 1~16행까지 재귀함수입니다 0이 되면 답변을 print 하고 반복을 멈추기 위해 return을 해줍니다 0이 아니면 반복되는 문장들을 print..

백준 알고리즘 - 브론즈3 #9085(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈3 #9085번 "더하기" 파이썬으로 풀었습니다. 입력받은 값의 합을 출력하는 문제입니다 파이썬에는 sum()이 있지만, for문으로 돌려 문제를 풀었습니다 우선 테스트 케이스의 값을 입력받습니다 테스트 케이스만큼 반복할 수 있게 for 문을 작성합니다 for문 안에서 숫자의 갯수 받고, 아랫줄에 숫자를 리스트로 입력 받습니다 for문을 통해 리스트의 값을 반복적으로 더해줍니다 더해진 최종 값을 출력해 줍니다 좋은 하루 되세요~~

백준 알고리즘 - 브론즈3 #2562(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈3 #2562번 "최대값" 파이썬으로 풀었습니다. 최대값과 최대값으 위치를 구하는 문제입니다 max()와 index()를 이용하면 되는데.. for문을 돌며 찾는 방법으로 풀었습니다. 항상 그렇지만 다시보면 쉽게 풀수 있는 방법이 있었네요... 체점현황을 통해 다른분의 코드를 볼수 있는데, 코드 길이나 메모리, 시간을 짧게하여 성공한 코드는 보면 도움이 됩니다 앞선 #10818과 다른점은 모든 값이 한줄에 주어지는 것이 아닌 한줄에 하나의 값이 주어지고, 최대값의 위치를 찾아야 합니다 우선 주어질 값이 몇개인지 알기에, 해당 길이의 리스트를 만들어 줍니다 이후 for문을 통해 한줄에 하나씩 값을 저장해 줍니다 최대값을 찾기 위해 for문에 돌릴때, 최대값의 위..

백준 알고리즘 - 브론즈3 #10818(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈3 #10818번 "최소, 최대" 파이썬으로 풀었습니다. 음... 주어진 값의 최대값과 최소값을 구하면 됩니다 파이썬에서는 min()과 max()를 통해 쉽게 값을 구할수 있습니다 하지만, min max를 쓰지 않고 풀었습니다 입력값을 리스트로 받습니다 한줄에 들어오기에, split()을 이용해서 받으면 됩니다 주어질수 있는 값의 범위 중 가장 작은 값을 max, 가장 큰 값을 min으로 정하고 for문을 돌립니다 for문을 한번만 돌아도 되는데, 최대값에 한번, 최소값에 한번 돌렸네요 for문에서 현재 정의된 최대값보다 크면 최대값에 저장하고, 최소값보다 작으면 최소값으로 저장하여 마지막에 저장된 값을 출력해줍니다 좋은하루 되세요~~

백준 알고리즘 - 브론즈1 #1110(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈1 #1110번 "더하기 사이클" 입니다. 브론즈 4, 5를 풀다 갑자기 난이도가 올라갔네요 일정한 규칙을 통해 수가 변경되고, 동일한 수가 되면 멈추어 줍니다 여기서 규칙은 1읠 자리의 수가 10의 자리로 이동하고, 10자리와 1자리를 더하여 새로운 1의 자리에 입력해줍니다 2행: 첫 숫자를 입력 받습니다 4행: while문을 돌리기 위해, 비교할 숫자는 -1로 임의로 넣습니다. 입력받을 값이 0보다 큰수이니 while문에 들어가기전에는 같아질수 없습니다. 7행: 입력받은 값을 new_number에 저장해줍니다. 지금보니... c_number와 new_number 하나만 있어도 풀수가 있었겠네요... 9행: while문을 시작합니다. 입력값과 c_number..

백준 알고리즘 - 브론즈5 #2438, 2439(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈5 #2438번 "별 찍기 - 1" 입니다. for 문을 활용하여 * 을 예제와 같이 출력하여 줍니다 몇번째 줄을 출력하는지 값을 받아 옵니다 이후 for 문을 활용하여 * 을 반복 적으로 출력합니다 주의할 점은 매 줄마다 * 의 수가 늘어나는 것인데, 이건 for 문에서 i 의 값이 1씩 증가하는것을 이용하면 됩니다. i 가 0에서 count-1까지 증가하기에, 출력시 +1을 하면, 1부터 count까지 *을 출력 할수 있습니다 브론즈5 #2439번 "별 찍기 - 2" 입니다. 별찍기 - 1과 유사하지만 * 앞에 공백을 넣어줘야 합니다 * 이 증가하는 것은 동일하지만 * 앞에 공백을 넣기 위해 따옴표에 스페이스를 한칸 입력 합니다. 공백도 곱하여 출력이 가능..

백준 알고리즘 - 브론즈4 #15552(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈4 #15552번 "빠른 A+B" 입니다. 시간 초과가 발생할수 있는 문제입니다 기존에 input()을 통해 입력을 받았다면, 이번 문제는 sys를 import 한후, sys.stdin.readline()을 통해 입력을 받으면, 시간을 단축 할수 있습니다 1행에 sys를 import 해줍니다 그리고 2행에서 입력값을 받습니다 A,B를 값이 없는 리스트로 만들어 줍니다 for문을 통해 A,B의 값을 받아옵니다. 다시 for문을 통해 합을 출력해줍니다 문제 자체는 매우 쉬우나, input()을 통해 문제를 풀면 시간초과에 걸리게 됩니다 좋은 하루 되세요~~

백준 알고리즘 - 브론즈5 #25304(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈5 #25304번 "영수증" 입니다. 영수증 총액과 구매내역을 비교하는 문제입니다 첫줄에 총액, 둘째줄에 물건 수량을 받습니다 그리고, price와 num이 들어갈 리스트를 만들어 줍니다 for문을 통해 물건 수량만큼 금액과 수량을 입력 받습니다 입력받은 금액을 for문을 통해 합산합니다 이후 if문을 통해 총액과 영수증금액이 맞는지 비교하여 줍니다 for문을 한번만 하여 바로 합계를 구할수도 있었네요 브론즈5여서 문제가 없는데, 알고리즘 문제 특성상 높은 단계로 가면서, 시간이나 메모리를 적게 쓰는 방법을 찾아야 합니다 좋은 하루 되세요~~

백준 알고리즘 - 브론즈5 #8393(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈5 #8393번 "합" 입니다. 1부터 입력된 값까지의 합을 출력하는 문제입니다 for문을 사용하여 1부터 입력값까지 돌면서 값을 더해 주면됩니다 1행에서 값을 받습니다 3행에 출력할 합의 값을 0으로 저장합니다. 아직 아무런 수도 더해지지 않았기에 0을 저장합니다 for문을 통해 입력값보다 1 큰수의 range()로 반복시킵니다 입력값을 넣으면 해당값이 되었을때 멈추기에, 해당 값은 실행이 되지 않습니다 마지막에 합을 출력해주면 됩니다 좋은 하루 되세요~~~

백준 알고리즘 - 브론즈5 #2739(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈5 #2739번 "구구단" 입니다. 입력된 숫자에 해당하는 단을 출력하면 됩니다 for문을 이용해서 1에서 9까지 반복하게 해줍니다 9까지 하여야하기에, range(1,10)으로 범위를 정해줍니다 출력은 포맷을 입력값 * 1(~9) = 얼마 형태로 해야 하기에, 문자와 숫자가 순차적으로 출력 되게 합니다 print()를 사용할때, 한줄에 여러 값을 넣으면 자동으로 한칸을 뛰어서 값을 출력합니다 그래서 print()안에 별도 공백이 없어도, 문제에 나온 출력과 동일하게 나오게 됩니다 좋은 하루 되세요~~

백준 알고리즘 - 브론즈3 #2525(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈3 #2525번 "오븐 시계" 입니다. 어제 풀이한 문제와 유사한 문제입니다 현재 시간이 주어지고, 요리에 필요한 분이 주어지면 완료 시간을 출력하면 됩니다 1행에서 현재 시간을 받고, 2행에서 요리에 필요한 분을 받습니다 계산을 위해 요리에 필요한 분을 시와 분으로 구분해 줍니다 //60을 통해 시간을 %60을 통해 분을 구합니다 합할 경우, 총 4가지 경우가 가능합니다 1. 시간이 24시 미만, 분이 60분 미만 - 이때는 그냥 합계를 출력합니다 2. 시간이 24시 이상, 분이 60분 미만 - 분은 그냥 더해주고, 시간은 24를 빼줍니다 3. 시간이 24시 미만, 분이 60분 이상 - 분의 합에 60을 빼고, 시간의 합에 1을 추가 합니다 4. 시간이 24..

백준 알고리즘 - 브론즈3 #2884(Python)

안녕하세요 백준 알고리즘 문제풀이입니다 브론즈3 #2884번 "알람 시계" 입니다. 알람시계를 맞추는 문제입니다 입력 값에서 45분을 뺀 값을 출력하면 됩니다 1행에서 시와 분의 값을 받아옵니다 45분을 빼야하기에, 분이 45이상이면 시간을 수정할 필요없이 분만 계산하면됩니다 if 를 통해 45보다 크거나 같으면 분에서 45분을 뺴고 출력합니다 하지만 분이 45미만이면 시간을 1 줄이고 분에 60분을 더하여야 45분을 뺄수 있습니다 이때는 시간이 1시간 이상일 경우에는 시간에서 1을 빼면 됩니다 또다른 경우는 시간이 0일 경우인데, 이때는 전날의 의미가 되어 23시가 되게 됩니다 좋은 하루 되세요~~

728x90
반응형