일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- baekjoon
- BOJ
- java
- 백준
- 공공데이터
- 응용
- 기초
- 헤드퍼스트 디자인패턴
- SELECT 절
- 명품 자바 프로그래밍
- 기초100제
- 파이썬
- 이론
- Codeforces Round #802 (Div. 2)
- 코딩테스트
- level1
- pypy3
- HAVING 절
- 단계별로 풀어보기
- Codeup
- 자바
- Java11
- JAVA 11
- 개념
- programmers
- SQLD / SQLP
- Python
- Python 3
- GROUP BY 절
- 기본
- Today
- Total
목록CodingTest (92)
Development Project
알고리즘이란? 입력 : 0개 이상의 입력이 존재해야하고, 출력 : 1개 이상의 출력이 존재해야 한다. 명백성 : 각 명령어의 의미는 모호하지 않고 명확해야 하며, 유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 하고, 유효성 : 각 명령어들은 실행 가능한 연산이어야 한다. 알고리즘의 표현방법은? 자연어 (한국어, 영어 ... ) : 변수를 명백히 정의해야 혼동없이 구상할 수 있다. FlowChart (흐름도) : 시각적으로 흐름이 명백히 보여 좋은 방법이지만, 알고리즘이 복잡할수록 기술이 힘들다. 유사코드 : 자연어와 컴퓨터언어 사이쯤의 체계적인 언어로, 흔히 알고리즘을 기술하는데 선호되는 표기법이다 컴퓨터 언어 알고리즘의 성능 분석 방법 시간복잡도 : 알고리즘 수행시간 시간을 측정하는 코드로 확인..
문제링크 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://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QSEhaA5sDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 시행착오 문제를 풀때 문제는 없었지만 제출폼을 처음봐서 제출하는데 애를 먹었다.. 문제분석 t : 테스트 케이스 와 t개의 정수 10개 묶음을 받아 홀수만 더하는 문제이다. 홀/짝을 판별하기 위해서는 2로 나누었을때 나머지를 이용하면 된다. 각 파라미터의 유형 t = 3 1 ≤ t, 입력받는 정수 ≤ 10000 ==> 숫자로 이루어지고, 위의 조건을 충족한다. 문제접근 ※..
문제링크 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
1712 : 손익분기점 a,b,c=map(int, input().split()) print(-1 if b>=c else a//(c-b)+1) # a,b,c=map(int, input().split());print(-(b>=c)or a//(c-b)+1) 2292 : 벌집 n=int(input()) sum=1 for i in range(1,n+1): if sum>=n or n==1: print(i) break sum+=6*i # n = int(input()) a = 1 b = 1 while n > a: a += 6*b b+=1 print(b) 1193 : 분수찾기 a = int(input()) b=0 while a>0: b+=1 a-=b a+=b b+=1 if b%2==0: print(f"{b-a}/{a}"..
11654 : 아스키코드 print(ord(input())) 11720 : 숫자의 합 a=int(input()) print(sum(list(map(int, input()))[:a])) 10809 : 알파벳 찾기 a=[-1]*26 cnt=0 for i in list(input()): if a[ord(i)-97]==-1: a[ord(i)-97]= cnt cnt+=1 for i in a: print(i,end=" ") # s=input() l=[-1]*26 for i in range(len(s)): if l[ord(s[i])-97]==-1: l[ord(s[i])-97]=i for i in l: print(i,end=' ') 2675 : 문자열 반복 n=int(input()) for i in range(n): ..