일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- pypy3
- 단계별로 풀어보기
- 기초100제
- HAVING 절
- SELECT 절
- 명품 자바 프로그래밍
- BOJ
- 파이썬
- 백준
- 이론
- 자바
- Python
- baekjoon
- level1
- 기본
- GROUP BY 절
- SQLD / SQLP
- 헤드퍼스트 디자인패턴
- 공공데이터
- programmers
- java
- 개념
- 기초
- 코딩테스트
- Codeforces Round #802 (Div. 2)
- Codeup
- Java11
- Python 3
- 응용
- JAVA 11
- Today
- Total
목록Python (39)
Development Project
문제 링크 : https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 소요 시간 : 1시간 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 512MB 문제 입력값 N(0≤N≤1,000,000) 이해 모든 자릿수가 기준으로 앞의 수보다 뒤의 수가 다 작다면 감소하는 수라고 정의한다. 이때 N번째 감소하는 수를 구하라는 문제이다. 문제 이해는 어렵지 않아보이지만, 감소하는 수가 제한이 생길수 밖에 없다는 것 정도는 분석해야할듯싶다. 한자..
문제 링크 : https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 소요 시간 : 4시간.....ㅎㅎㅎㅎㅎㅎ 문제를 읽고 이해하기 제한 시간 : 2초 메모리 : 128MB 문제 노드의 개수 N개(1≤N≤10,000), 간선의 개수 N-1개 트리의 끝부분(리프노드)를 잡고 쫙 폈을때 가장 긴 길이를 구하는 문제 이해 문제 이해는 어렵지 않았는데, 문제에서 예시로 준 그림이 왜 45가 되는지 분석하지않고 문제에 바로 접근해서 많이 삽..
문제 링크 : https://www.acmicpc.net/problem/2610 2610번: 회의준비 첫째 중에 회의에 참석하는 사람의 수 N이 주어진다. 참석자들은 1부터 N까지의 자연수로 표현되며 회의에 참석하는 인원은 100 이하이다. 둘째 줄에는 서로 알고 있는 관계의 수 M이 주어진다. 이 www.acmicpc.net 소요 시간 : 2시간 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 128MB 문제 회의에 참석하는 사람의 수(1≤N≤100), 서로 알고있는 관계의 수 M (관계이니까 최대 N-1개임) 서로 알고있는 사람은 같은위원회에 속해야하고, 위원회의 수는 최대가 되어야함 위원회마다 대표가 한명씩 있는데 각 위원회 회원들이 대표에게 의견전달이 가장 효율적으로 될수있도록 대표를 선정하는..
문제 링크 : https://www.acmicpc.net/problem/1208 1208번: 부분수열의 합 2 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 소요 시간 : 1시간 40분 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 256MB 문제 N개의 정수(1≤N≤40), 더해서 얻고싶은 값 S(|S|≤1,000,000), N개의 크기를 가지는 수열 N개의 수열에서 얻을 수 있는 부분수열들 중 합이 S가 되는 경우의 수를 출력하는문제 이해 처음에 문제를 잘못 이해해서, 누적합+포인터로 구하..
문제링크 https://leetcode.com/problems/add-two-numbers/ Add Two Numbers - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 시행착오 문제를 잘못읽어 처음에는 print를 이용해 리스트처럼 출력을 했지만, stdout에 출력값이 뜨고 output에 결과가 나오질 않아서 한동안 해매었다. 결론은 stdout은 표준출력으로 print()함수같은 출력을 말하며 output은 함수의 return값 같은 값을 일컫는 말..
문제링크 https://codeforces.com/contest/1700/problem/B Problem - B - Codeforces codeforces.com 문제 시행착오 값을 하나씩 증가시키면서 찾아야한다는 것에 사로잡혀서 시간초과의 덫을 빠져나오지 못했다.. 이 문제에서는 가능한 어떤 결과라도 답으로 인정해준다는 문구를 이용하지 못하고 정석대로만 시도했던 것 같다. 문제에서 주어진 바를 다 이용하여 빈틈을 찾을 수 있는 프로그래머가 되기 위해 열심히 해야겠다..! 문제분석 t : 입력 테스트 케이스 개수 n : 출력할 문자열의 길이 num : 자연수 를 입력받아 회문을 만들어야한다. 여기서 회문이란 12321처럼 뒤집은 숫자가 원래숫자가 되는 수를 말한다. 위 문제를 풀기 위해서는 회문의 특징뿐..
문제링크 https://programmers.co.kr/learn/courses/30/lessons/81301?language=python3 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 문제 시행착오 zero를 빼먹어서 런타임에러가 생긴 것 말고는 시행착오는 없었다. 문제를 항상 잘 읽어야지 하는데 계속 차분히 문제를 보는 습관을 길러야겠다. 문제분석 s : 영어와 숫자가 혼합된 문자열 을 입력받아, 영어에 대응되는 숫자로 변경하는 프로그램을 작성하는 문제이다. 각 영어로된 숫자단어를 발견하면 ..
문제링크 https://programmers.co.kr/learn/courses/30/lessons/72410?language=python3 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제 시행착오 문제를 봤을때 하나하나 순서를 알려줘서 이 문제는 틀리는 사람이 거의 없겠다고 생각했었는데, 각 단계별 지시사항을 보고 이걸 해주는 함수가 있었는데 이름이 잘 기억나지 않았다. 거기다 한번도 써본적 없는 함수도 있었기에 생각보다 오래 걸렸던 문제였다. 문제분석 new_id : 사용자가 입력한 아이디 를..
문제링크 https://leetcode.com/problems/two-sum/ Two Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 시행착오 간단한 문제라 시행착오가 딱히 없었지만, 조건중 하나만 출력하면 된다는 문구를 못봐서 첫시도만에 성공하진 못했다. 문제분석 nums : 주어진 숫자의 리스트 target : 목표 숫자값 위 2인자를 받아 nums리스트의 임의의 두 값을 합쳐 target을 만들 수 있는 리스트의 인덱스를 출력하면 된다. 꼭 ..
문제링크 https://codeforces.com/contest/1700/problem/A Problem - A - Codeforces codeforces.com 문제 시행착오 큰 시행착오는 없었지만, 계산실수가 있었다. 문제분석 행이 n개, 열이 m개 존재하는 테이블은 가장 왼쪽 최상단이 1로 시작하고 오른쪽으로 갈때마다 1씩증가하며, 밑으로갈때마다 m씩 증가하는 비용을 가진다. 테스트케이스 t와 행열 n,m이 주어졌을때 왼쪽최상단(1)에서 n,m좌표까지 도착할때 가장 최소의 비용을 출력하는 문제이다. 각 파라미터의 유형 t = 3 1 ≤ t ≤ 1000 => 숫자로 이루어진 반복할 횟수이다 n,m 1 ≤ n,m ≤ 10^4 => 숫자로 이루어진 행과 열이다. 문제접근 ※ 작성..
문제링크 https://programmers.co.kr/learn/courses/30/lessons/77484 문제 시행착오 등수가 맞은개수와는 반대로 증가하는 개념이라 계산하며 혼란이와 생각보다는 많이 틀렸다. 좀더 차분히 생각하고 적어봤으면 금방끝났을 것이라는 생각에 아쉬움이 좀 남았다. 문제분석 lottos : 민우의 동생이 일부 혹은 전체를 지워버려 남은 로또번호 win_nums : 로또당첨번호 위 2 인자를 받아 민수가 얻을수있는 최고 등수와 최저등수를 출력하는 문제이다. 로또번호는 0이 아닌경우 중복되지 않는다. 각 파라미터의 유형 lottos = [44, 1, 0, 0, 31, 25] 길이가 6인 정수 배열 and 0 ≤ lottos의 모든원소 ≤ 45 and 0은 민우의 동생이 지워버려 식..
문제링크 https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 문제 시행착오 꽤 간단해 보였으나... 결론부터말하면 내 마음대로 풀려다가 여러번 시간초과가 났다. 내가 이 문제를 접근할 때 가장 많이한 실수는 문제를 제대로 이해하지 않고 접근했다는 것이다. 문제를 대충 훑고 바로 코드를 풀려고 했어서 이해가 어려운 문제가 아님에도 시간을 많이 소요했던 것 같다. 문제를 잘읽쟈..! 문제 분석 이 문제의 핵심..
15649 : N과 M(1) def solve(depth, N, M): if depth==M: print(' '.join(map(str,out))) return else: for i in range(len(visited)): if not visited[i]: visited[i]=True out.append(i+1) solve(depth+1,N,M) visited[i]=False out.pop() N,M=map(int,input().split()) visited=[False]*N out=[] solve(0,N,M) 15650 : N과 M(2) N,M=map(int,input().split()) out=[] def solve(start): if len(out)==M: print(' '.join(map(str..
5086 : 배수와 약수 while True: a,b=map(int,input().split()) if a==0 and b==0: break print("factor" if b%a==0 else ("multiple" if a%b==0 else "neither")) 1037 : 약수 n=int(input()) l=list(map(int,input().split())) l.sort() print(l[0]*l[-1]) 2609 : 최대공약수와 최소공배수 l=list(map(int,input().split())) lcf=1;ok=0 minVal=min(l) for i in range(2,minVal+1): while True: if l[0]%i==0 and l[1]%i==0: lcf*=i l[0]//=i l[1..
1085 : 직사각형에서 탈출 x,y,w,h=map(int,input().split()) print(min([abs(x-w),abs(y-h),abs(x),abs(y)])) 3009 : 네 번째 점 l=[] for _ in range(3): l.extend(map(int,input().split())) odd=l[0::2] even=l[1::2] print(min(odd) if odd.count(min(odd))==1 else max(odd), min(even) if even.count(min(even))==1 else max(even)) 4153 : 직각삼각형 while True: l=list(map(int,input().split())) if l[0]==0 and l[1]==0 and l[2]==0: ..
10815 : 숫자 카드 import sys n = int(sys.stdin.readline().strip()) getNum = set(map(int,sys.stdin.readline().split())) m = int(sys.stdin.readline().strip()) checkNum = list(map(int,sys.stdin.readline().split())) for i in checkNum: if i in getNum: print(1) else: print(0) # import sys N = int(sys.stdin.readline().rstrip('\n')) numbers = set(map(int, sys.stdin.readline().rstrip('\n').split())) M = int(..
2750 : 수 정렬하기 n=int(input()) l=[int(input()) for _ in range(n)] for i in range(n): print(sorted(l)[i]) 2751 : 수 정렬하기 2 import sys arr=[int(sys.stdin.readline().rstrip()) for i in range(int(input()))] arr.sort() for i in arr: sys.stdout.write(str(i)+'\n') 10989 : 수 정렬하기 3 from sys import stdin input = stdin.readline().strip N = int(input()) numbers = [] for i in range(10001): numbers.append(0) fo..
2798 : 블랙잭 from itertools import combinations a,b=map(int,input().split()) l=list(map(int,input().split()))[0:a] max=0 for i in list(combinations(l,3)): s=i[0]+i[1]+i[2] if s
10872 : 팩토리얼 def factorial(n): if n==0 or n==1: return 1 return n*factorial(n-1) print(factorial(int(input()))) 10870 : 피보나치 수 5 def fib(num): if num=k+1: print(f'{"____"*k}"재귀함수가 뭔가요?"\n{"____"*k}"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\n{"____"*k}마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\n{"____"*k}그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."') st(k+1,n) print(f'{"____"*k}라고..
1978 : 소수 찾기 n=int(input()) l=list(map(int,input().split())) cnt=0 for i in l[:n]: if i==1: continue ok=0 for j in range(1,i+1): ok+=1 if i%j==0 else 0 cnt+=1 if ok==2 else 0 print(cnt) 2581 : 소수 m,n=int(input()),int(input());num=m;l=[] while num>=m and num