본문 바로가기

Computer Engineering66

[백준/파이썬3/10871] X보다 작은 수 풀이 이번문제는 파이썬의 신기능을 경험한 문제! N, X = map(int, input().split()) A = list(map(int, input().split())) for i in A: if i < X: print(i, end=" ") 우선 for문을 보면 A라는 List가 들어갔다. 본인은 첫 언어가 C++라서 for문에 배열이 들어가면 당연히 배열의 크기만큼 반복 한다고 생각했는데. 배열 인덱스를 순차적으로 하나씩 열어서 그 값을 i에 입력한다. 그후에 if문에서 X와 비교. 이렇게 짧게 코드를 적을 수 있다니... 파이썬 갓갓! 2019. 12. 18.
[백준/파이썬3/2869] 달팽이는 올라가고 싶다 오답 뭐 정답률 보고 인지는 하고 있었지만, 우선 그냥 조건문(if문)을 사용하여 대충 짜보았다. A,B,V= map(int, input().split()) count = 1 while V>0: if V>0: V-=A if V>0: V+=B count+=1 print(count) 이렇게 짜도, 답이 나오기는 한다. 하지만! "시간초과" 정답 A,B,V = map(int,input().split()) k = (V-B)/(A-B) print(int(k) if k == int(k) else int(k)+1) 시간을 최대한 줄여야 되는 코드를 짜는게 관건이다. if문에서 두 변수를 비교하게 되면 비교연산결과를 기다리느라 시간이 소요될 것이다. 그래서 부등호 없이 단순히 k=(V-B))/(A-B) 식으로 한번에 .. 2019. 12. 16.
[백준/파이썬3/2439] 별 찍기 -2 오답 A= int(input()) for i in range(A): print(" "*(A-i-1),"*"*(i+1)) 처음에 i가 0부터 시작을 하므로 첫줄이 뜨게 된다. (위: 정답 출력, 아래: 오답 출력) 정답 A=int(input()) for i in range(1,A+1): print(" "*(A-i) + "*"*i) 2019. 12. 15.
[백준/파이썬3/2742] 기찍N 풀이 N = int(input()) for i in range(N): print(N-i) for문을 사용하여 위와 같이 풀수있다. 2019. 12. 12.
[백준/파이썬3/2839] 설탕 배달 풀이 와... 문제 풀다가 좌절크리.. ㅋㅋㅋㅋ 오답1: 처음에는 너무 단순하게 "어 그냥 5로 나눠 떨어지면 5빼고 그러다가 안되면 3으로 나눠 떨어지나 확인 후에 3을 빼면서 카운팅 하나씩 하면 되는거 아닌가" 라고 생각했는데. 그러나 3을 뺀 후에는 다시 5로 나누어지나 다시 확인을 해야한다. sugar = int(input()) count = 0 while sugar%5 == 0 and sugar>=5: sugar -= 5 count+=1 while sugar%3 == 0 and sugar>=3: sugar -= 3 count+=1 if sugar == 0 : print (count) else: print (-1) 오답2: 어, 3을 빼고 다시 올라가야되는거면 그냥 이중루프 걸면 되는건가라는 아주.. 2019. 12. 9.
[백준/파이썬3/15596] 정수 N개의 합 풀이 아래 내용을 다시 자세하게 읽어보면, n개가 저장되있으므로 그냥 배열 전체의 합을 더해도 된다..... 따라서 코드는 아래와 같다. def solve(a): #배열 a를 함수를 통해서 전달받고 return sum(a) #모든 배열의 원소를 함수 sum을 통해서 더하면된다. 2019. 12. 8.
[백준/파이썬3/2562] 최댓값 풀이 처음에 접근은 C++ 처럼 반복문을 이용해서 배열에서 최댓값을 구하고 반복 과정에서 다른 변수를 이용하여 최대값의 index를 저장하려고 하였는데, 파이썬의 경우는 더욱 간단하게 풀 수 있다. num_list = [] for i in range(9): #0~8 까지 총 9개 num_list.append(int(input())) print(max(num_list)) #최대값 구하느 함수 max() print(num_list.index(max(num_list))+1) #0부터 시작하니 인덱스 값에 1을 추가. 2019. 12. 7.
[백준/파이썬3/10818] 최소, 최대 풀이 n = int(input()) # dummy ns = list(map(int, input().split())) print("{} {}".format(min(ns), max(ns))) 파이썬으로 문제를 풀면서 왜? 정수의 갯수를 입력을 정해놨는데 이 점을 무시하고 넘어가는지 의아 할 것이다. 우선 문제에서 틀린 케이스를 주고서 "왜 이렇게 오류를 처리하지 않는지?" 자체가 없다. 그리고 N이라는 정수를 주는 점은 파이썬에서 제공하는 split 같이 친절한 함수없는 C같은데서 필요한 경우이다. 아래 코드를 보면 입력받은N값에 따라서 for문이 언제까지 반복을 해서 배열에 숫자를 입력하는지 그리고 어디서 멈춰야하는지 결정한다. #include using namespace std; int A[1000001.. 2019. 12. 5.
[백준/파이썬/7287] 등록 아니.. 스페셜 저지 문제라서 "와.... 어렵다. 서버에서 정보를 불러와서 값을 출력해야되는건가???" 라고 한참 고민하다가 답이 안나와서 정답 비율보고.. 와 백준 푸는 사람들은 다르구나 벙쪄있다가 구글 검색 후 심각한 현타.... 그냥 자기 아이디에서 문제 풋 것과 아이디 출력하면된다. -ㅅ-;;; print("20\n") print("kim900f\n") 20문제 풀고, 아이디를 그냥 print를 사용하면 된다. 정말 현재 나의 사고력이 엄청나게 굳어 있다는 걸 느끼게 해 준 문제...... 2019. 12. 4.
[백준/파이썬3/10172] 개 개 성공 한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 99883 35087 32016 38.291% 문제 아래 예제와 같이 개를 출력하시오. 입력 없음. 출력 개를 출력한다. 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__| 정답 1. print('|\\_/|\n''|q p| /}\n''( 0 )"""\\\n''|"^"` |\n''||_/=\\\\__|') 2. print("|\_/|") print("|q p| /}") print("( 0 )\"\"\"\\") print("|\"^\"` |") print("||_/=\\\__|") 요즘 너무 쉬운것만 푸는 것 같다...... 2019. 12. 4.
[백준/파이썬3/10869] 사칙연산 사칙연산 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 74828 41062 37374 56.687% 문제 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 입력 두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000) 출력 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다. 예제 입력 1 복사 7 3 예제 출력 1 복사 10 4 21 2 1 풀이 a,b= map(int, input().split()) a = int(a) b = int(b) print(a+b) print(a-b) print(a*b) print(int(a/b)) pr.. 2019. 12. 3.
[백준/파이썬3/1463] 1로 만들기 풀이 x = int(input()) dp = [0 for _ in range(x+1)] dp[1] = 0 for i in range(2, x+1): dp[i] = dp[i-1]+1 if not i%2 and dp[i]>dp[i//2]+1: dp[i] = dp[i//2]+1 if not i%3 and dp[i]>dp[i//3]+1: dp[i] = dp[i//3]+1 print (dp[x]) 우선, Dp문제 이해가 안갔다. 유튜브 영상 몇개 보면서 감이 오는거 같긴했는데...... 머리가 평균이하인듯 ;ㅅ; 그래서 아나콘다에서 Spyder라는 툴을 이용해서 배열에 들어가는 값을 시각화 해보았다. 이해가 안가신다면 코드를 빤히 10분만 쳐다보시면 뭔가가 보일 것이다. 우선 index의 숫자를 보시면 예를 들어.. 2019. 12. 3.