일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기본
- 개념
- Java11
- baekjoon
- 응용
- Python 3
- SELECT 절
- 공공데이터
- java
- programmers
- Python
- 기초100제
- BOJ
- 파이썬
- 명품 자바 프로그래밍
- 자바
- level1
- HAVING 절
- JAVA 11
- 기초
- 헤드퍼스트 디자인패턴
- GROUP BY 절
- 코딩테스트
- 백준
- 단계별로 풀어보기
- pypy3
- 이론
- Codeup
- Codeforces Round #802 (Div. 2)
- SQLD / SQLP
- Today
- Total
목록분류 전체보기 (117)
Development Project
문제 링크 :https://www.acmicpc.net/problem/2153 2153번: 소수 단어 소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나 www.acmicpc.net 소요시간 : 30분 정답코드 import java.util.*; import java.io.*; public class Main{ static String input; static int num=0; static boolean[] isNotPrime; // 52*20 = 1040 public static void main(String[] args) throws ..
문제 링크 : https://www.acmicpc.net/problem/15989 15989번: 1, 2, 3 더하기 4 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 www.acmicpc.net 소요 시간 : 1시간 38분 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 512MB 문제 테스트 케이스 수 T개(T>0), 정수 n(0 1개, 가장 큰수가 2인 수는 211, 22 -> 2개, 가장 큰수가 3인 수는 31 -> 1개 ※ 가장 큰수가 2인 경우는, N(4)에서 2를 뺀 2 즉. N이 2일때 케이스에서..
문제 링크 : https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 소요 시간 : 8분 정답코드 import java.util.*; import java.io.*; public class Main{ static int N,M; static int[][] map1, map2; static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throw..
문제 링크 : https://www.acmicpc.net/problem/16439 16439번: 치킨치킨치킨 첫 번째 줄에 고리 회원의 수 N (1 ≤ N ≤ 30) 과 치킨 종류의 수 M (3 ≤ M ≤ 30) 이 주어집니다. 두 번째 줄부터 N개의 줄에 각 회원의 치킨 선호도가 주어집니다. i+1번째 줄에는 i번째 회원의 선 www.acmicpc.net 소요 시간 : 2시간 5분 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 128MB 문제 N명(1≤N≤30)의 회원, 치킨의 종류는 M개(3≤M≤30) 회원마다 특정 치킨의 선호도(ai,1, ai,2, ..., ai,M (1 ≤ ai,j ≤ 9)) 존재 회원의 만족도는 주문한 치킨의 가장 큰 선호도값 목적 : 최대 3가지 종류의 치킨을 시킬때, ..
혹시나 이미 정렬 알고리즘에 대해 공부해본적 있는 사람이라면 이 게시물을 읽기전에 자신이 알고있는 정렬 알고리즘 이름과 코드를 생각해보도록 하자. 몇개가 생각나는가? 최근에 알고리즘 공부를 한 사람이면 모든 알고리즘을 어떤 도움없이 코드를 작성할 수 있고 그에 따른 효율성도 구분할 수 있는 사람도 있을 것이다. 하지만, 전공자 4학년인 필자의 경우도, 오랜만에 다시 공부 겸 되짚어 생각해보니 선택, 삽입, 버블, 퀵 정렬 이렇게 4개를 기억했지만 코드로 바로바로 적을 수 있는 수준은 아니었다. 예상하기로는 아마 다들 3~5가지 정도 말할 수 있을거라 생각한다. 왜일까? 우리는 너무나도 당연하게 알고리즘을 공부하는 이유는 효율성 때문이라는 것을 안다. 더 가독성이 좋고, 더 짧고, 더 빠르게 작동하고, 더..
알고리즘이란? 입력 : 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..