Lofi Music 10%
단계별로 풀어보기 백준_10871번
·
BaekJoon Reivew
X보다 작은 수  문제는 다음과 같습니다.    정수 N개로 이루어진 수열 A와 정수 X가 첫째 줄에 주어집니다.둘째 줄에는 수열 A를 이루는 정수 N개가 주어집니다. N의 범위가 10,000 입니다. 이는 리스트의 길이가 10,000이 될 수도 있고 만약 범위가 더 커졌다면 , 시간복잡도를 고려해서 코드를 작성해야 합니다. 이 문제에서는 그런 제한이 없지만, 최대한 시간복잡도를 아낄 수 있는 방법으로 작성해보겠습니다. 리스트를 받자마자 X보다 작은 수를 고려한다면 이는 O(N)만큼 소요됩니다. 하지만 백준 입력 예시에서는 리스트를 한번에 받게 끔 되어있습니다. 따라서 리스트를 받는것 까지는 이전 게시물에서 올린 방식 그대로 동일 합니다.  다만 이제부터는 가독성 또한 고려하겠습니다.리스트 컴프리헨션리스..
단계별로 풀어보기 백준_10807번
·
BaekJoon Reivew
개수 세기 문제는 다음과 같습니다.   첫째 줄에 정수의 개수 N이 주어집니다.둘째 줄에는 정수가 공백으로 구분되어 주어져있습니다.셋째 줄에는 찾으려고 하는 정수 v가 주어집니다.   첫째 줄에 주어진 정수 N으로 가변적인 부분을 대신하여 시간복잡도를 줄일 생각을 하였으나, 보다 단순하게이 문제의 해답 코드를 두가지 방식으로 생각했습니다. 첫 번째 방식은 list를 이용한 단순 count 방식입니다.N = int(input())L = list(map(int,input().split()))M = int(input())print(L.count(M))두 번째 방식은 list와 dict를 이용한 단순 HashMap 방식입니다.d ={}N = int(input())L = list(map(int,input().sp..
단계별로 풀어보기 백준_10951번
·
BaekJoon Reivew
A+B -4문제는 다음과 같습니다.   이전 문제와 매우 비슷한 문제입니다. 하지만 다른 점은 종료조건이 다릅니다.이전 문제의 코드 알고리즘 설명은 생략하겠습니다.https://edu-data.tistory.com/66 단계별로 풀어보기 백준_10952번A+B -5 문제는 다음과 같습니다.  두 정수 A와 B를 입력 받은 다음, A+B를 출력하는 프로그램을 작성하시면 됩니다.하지만 반복의 횟수는 언급되어 있지 않고 입력의 마지막에는 0 두 개가 들어온edu-data.tistory.com 입력의 수는 사용자가 원하는 만큼 제어할 수 있습니다.이 문제처럼 자유롭게 입력의 개수가 제한 되어 있지 않은 문제들은 예외처리를 사용하시면 됩니다. 예외처리란?(try - except)  try-except 구문은 파이..
단계별로 풀어보기 백준_10952번
·
BaekJoon Reivew
A+B -5 문제는 다음과 같습니다.  두 정수 A와 B를 입력 받은 다음, A+B를 출력하는 프로그램을 작성하시면 됩니다.하지만 반복의 횟수는 언급되어 있지 않고 입력의 마지막에는 0 두 개가 들어온다고 언급되어 있습니다. 이를 통해 알 수 있는 점은 마지막 입력이 0 0 이 된다면 입력을 받지 않는다는 것 입니다. while True: A,B = map(int,input().split()) if A==0 and B==0: break print(A+B) while True : -> 참 일 때까지 반복합니다. 입력을 받다가 입력이 0,0 이 되는 순간 break로 반복문을 멈춥니다. Map에 대한 언급은 백준 단계별로 풀어보기 초반부터 확인하실 수 있습니다.A,B를 입력을..
단계별로 풀어보기 백준_2439번
·
BaekJoon Reivew
별찍기-2 문제는 다음과 같습니다. 별찍기 -1 의 출력과 반대로 N만큼의 자리에서 오른쪽으로 정렬되어 있음을 확인 할 수 있습니다.https://edu-data.tistory.com/55 단계별로 풀어보기 백준_2438번별 찍기 -1문제는 다음과 같습니다.  입력한 N의 크기 만큼 반복하면서 반복하는 숫자 만큼 별을 출력하면 됩니다.이는 문제를 접근하자마자 단순하게 For(반복문) 활용하여 문제를 해결하면 된edu-data.tistory.com이전 게시글을 참고하시면서 비교하면 좋습니다 :)  이번 문제의 핵심은 어떤식으로 오른쪽으로 정렬할 것인지 입니다.아마 무수하게 많은 풀이 방법이 존재할 거 같습니다.입력조건 N이 1부터100까지 입니다. 범위가 작으므로 딱히 시간복잡도에 대해서는 고민하지 않아도..
단계별로 풀어보기 백준_2438번
·
BaekJoon Reivew
별 찍기 -1문제는 다음과 같습니다.  입력한 N의 크기 만큼 반복하면서 반복하는 숫자 만큼 별을 출력하면 됩니다.이는 문제를 접근하자마자 단순하게 For(반복문) 활용하여 문제를 해결하면 된다고 생각했습니다. 입력 조건으로 1 하지만 주의 해야할 점이 있습니다. 단순하게 입력의 크기만큼 반복하게 되면 0부터 N-1까지를 반복하기 때문에 올바르지 않은 길이의 *가 출력됩니다. 따라서 for문의 범위를 잘 조정해야 합니다. 저의 해답 코드는 다음과 같습니다. N= int(input())for i in range(1,N+1): print('*'*i)   정답 처리 된 것을 확인할 수 있습니다.다음은 정답 비율을 보고 원인을 분석해보겠습니다. 또한 다른 사람의 공개된 오답 코드를 확인해 보겠습니다. 정..