yu_jin456의 등록된 링크

 yu_jin456로 등록된 네이버 블로그 포스트 수는 72건입니다.

[자바] 백준알고리즘 2493번 탑 (G5) [내부링크]

<문제풀이> 문제에 나와있는 [6, 9. 7. 5. 4] 가 각각 1, 2, 3, 4, 5의 위치를 가지고 있으므로 앞에 0이 있게 하기 위해 숫자를 5개 입력하지만 배열 Size는 6으로 하고 index 1부터 숫자를 저장한다. => 입력 숫자 개수 + 1 사이즈 배열 생성 위 방식처럼 똑같이 진행할 인덱스 위치를 저장하는 스택을 하나 더 만들어서 스택을 두 개로 이용하는 방식으로 한다면 위치출력이 수월하다. // 2022-08-06 // 탑 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.Stack; public class Main { public static void main(String args[]) throws Exception { Stack<Integer> stack = new Stack<>(); //숫자 스택 St

[자바] 백준알고리즘 11659번 구간 합 구하기 4 (S3) [내부링크]

위 문제에서 [ 5, 4, 3, 2, 1] 의 숫자배열이 있다. [1 : 3] 의 합 (5+4+3) 이 12인 것을 보고 index가 1부터 시작하는 것을 알 수 있다. 따라서, 앞에 index 0을 비워두고 배열에 숫자를 넣으면 된다. 위 그림처럼 해당 구간을 index 1부터 index 5까지 차례차례 더해서 마지막 index 5는 [1 : 5] 구간의 합인 15가 된다. 그렇다면 [2 : 3] 구간의 합을 구할려면 [1 : 3] 구간에서 [1]구간만큼 빼주면 [ 2 : 3 ] 구간을 구할 수 있다는 걸 알 수 있다. // 2022-08-03 // 구간 합 구하기 4 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String args[]) throws Exception {

[이지퍼블리싱 서평단] IT 5분 잡학사전 [내부링크]

이번에 이지퍼블리싱에서 [ IT 5분 잡학사전 ] 서평단에 참여하게 되었다..! 저번에 한번 서평단을 지원했었지만 아쉽게도 되지 않아 이번에는 될까 ..? 하는 마음으로 지원해봤는데 당첨될줄은 몰랐다!!! 평소에도 Do it! 시리즈를 좋아했고 나의 ebook에는 Do it! 시리즈가 가득 찼다. 2022년 9월 30일에 책이 도착했고, 이 책을 받으면서 너무 설렜다! 비록 서평단이 되어 책을 받게 되었지만 포장을 깔끔하게 보내주셔서 깜짝 놀랐다! 첫인상은 매우 만족!! 이었다 !! 책 표지도 깔끔하고 두께도 생각보다 얇아 비전공자도 부담없이 읽기 딱 좋겠다! 라고 생각이 들었다. 작정하고 읽으니 2일정도의 시간이 걸렸다. 나는 컴퓨터전공으로 대학교 4년을 나왔고 직장에서 짧으면 짧고 길면 길다고 한 시간을 다녀본 적도 있었다. 하지만, 나는 IT 지식이 그렇게 좋지 못했다. 어렴풋이 아 이거다! 라는 것은 알지만 정확한 개념이 머리에 있지는 못했다. 이 책을 읽으면서 나는 깨달음을

[자바] 백준알고리즘 1520번 내리막 길 (G3) [내부링크]

<문제풀이> 이 문제는 DFS 탐색 알고리즘을 활용하여 DP를 활용하는 문제이다. 먼저 초기에는 지도(맵)과 방문배열, DP 배열을 만들어준다. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(in.readLine()); N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); map = new int [N][M]; // 지도(맵) dp = new int [N][M]; // 메모이제이션 visited = new boolean [N][M]; // 방문체크배열 for(int i=0; i<N; i++) { st = new StringTokenizer(in.readLine()); for(int j=0; j<M; j++) { map[i][j] = Integer

[이지스퍼블리싱 서평단] 깃 & 깃허브 입문 [내부링크]

처음 깃을 접했을 때 깃에 대해 모르는 것이 너무 많아 인터넷에서 찾아서 사용법을 익혔었다. 하지만, 인터넷에 나온 내용과 현재 내 상황에 대해 적합하지 않은 부분이 있어 해결이 잘 되지 않아 답답함을 많이 느꼈었다. 이번 서평단을 통해 깃 & 깃허브에 대해 제대로 공부하고 싶어 서평단에 지원을 했는데 저번에 [ IT 5분 잡학사전 ] 에 이어 두 번째로 [ 깃 & 깃허브 입문 ] 서평단에 참여하게되었다...! 2022년 10월 15일 토요일날 배송완료 문자를 받고 너무나도 설렜었다....! 예쁘게 포장되어 집에 도착했었고, 책이 내 눈앞에 있었다..! 예전부터 이지스퍼블리싱 출판사에서 나온 책들은 워낙 즐겨 보았고 도움도 많이 받아서 이번에도 열심히 책을 읽었었다..! 책의 두께는 저번처럼 두껍지 않았고 알찬 내용으로 구성되어져 있었다. 내용이 군더더기 없이 깔끔하게 정리되어 있었고 필요한 내용만 있었다. 인터넷으로 대충 보며 따라했던 내용들이 ' 아! 이게 이런 의미였구나! '

[패스트캠퍼스] 10개의 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Oneline 1일차 [내부링크]

오늘 패스트 캠퍼스의 백엔드 강의를 결재했다. 결재한 이유는 .. 광고를 너무 많이 봤었고 기술 스택이 적지않게 들어가 있어서 가볍게 백엔드 기술 스택을 쌓을 수 있다는 생각이 들었다. 내.돈.내.산 리얼 찐 후기 패스트 캠퍼스의 " 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Oneline " 을 매일 매일 기록을 해볼려고 한다. 그럼 지금부터 스타뚜~ 하이퍼바이저기반 가상화 는 Host : 물리서버 Guest : 가상서버 Guest OS : 다양한 OS를 선택할 수 있음. 호스트 자원을 사용할려면 반드시 Guest OS를 거쳐야하므로 속도가 느림. Hypervisor : 서버 가상화 기술로 host server에 설치되고 호스트와 Guest를 나누어주고 각각의 Guest는 Hypervisor에 의해 관리하고 시스템 자원을 할당받게 됨 격리된 환경에서 또 하나의 가상서버를 실행하는 기술 컨테이너 기반 가상화는 격리된 환경에서 프로세스를 실행하는

[자바] 백준알고리즘 2441번 별 찍기 - 4 (B3) [내부링크]

// 2022-07-18 // 별 찍기 - 4 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); for(int i=0; i<N; i++) { for(int j=0; j<i; j++) { sb.append(" "); } for(int k=N-i; k>0; k--) { sb.append("*"); } sb.append("\n"); } System.out.pri

[자바] 백준알고리즘 2442번 별 찍기 - 5 (B3) [내부링크]

Solution 1 // 2022-07-21 // 별 찍기 - 5 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); for(int i=0; i<N; i++) { for(int j=0; j<N-1-i; j++) { System.out.print(" "); } if(i==0) { System.out.print("*"); } else { for(int j=0; j<i+1; j++) { System.out.print("*"); } f

[자바] 백준알고리즘 11720번 숫자의 합 (B4) [내부링크]

// 2022-07-24 // 숫자의 합 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); // N개의 숫자 입력 int sum = 0; // 숫자들의 합 String nums = br.readLine(); //여러숫자 입력 for(int i=0; i<N; i++) { //N개의 숫자를 sum+= nums.charAt(i) - '0'; //sum 변수에 하나씩 추출하여 } System.out.print(sum); } } <문법

[자바] 백준알고리즘 8958번 OX퀴즈 (B2) [내부링크]

// 2022-07-25 //OX퀴즈 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); //테스트 케이스 수 for(int i=0; i<N; i++) { int point=0, sum=0; //연속 O의 점수, 점수 합계 String str = br.readLine(); for(int j=0; j<str.length(); j++) { char c = str.charAt(j); //한 문자씩 읽기 if(c=='O') { //O이

[자바] 백준알고리즘 2864번 5와 6의 차이 (B2) [내부링크]

// 2022-07-27 // 5와 6의 차이 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); String A = st.nextToken(); //두 수를 입력한다. String B = st.nextToken(); A = A.replace('6', '5'); //6을 5로 바꾼다. B = B.replace('6', '5'); int mi

[자바] 백준알고리즘 1049번 기타줄 (S4) [내부링크]

기타줄 1세트 = 낱개 6줄 생각해야할 조건!! * 세트로 살 경우 사야할 기타줄보다 개수가 많아도 상관없다!!* 사야할 기타줄에 세트만 샀을 경우의 가격 => 예제 3번을 보면 15개의 기타줄에 브랜드는 1개이다. 1세트는 100원, 낱개당 40원일 때 3세트를 사면 낱개 18개로 300원 낱개 15개를 사면 600원이다. 따라서, 3세트를 샀을 때 가격이 더 저렴하게 살 수 있으므로 출력은 300으로 나와야 한다. 2. 사야할 기타줄에 낱개만 샀을 경우의 가격 => 예제 1번을 보면 4개의 기타줄에 브랜드는 2개이다. 첫번째 브랜드는 1세트 12원, 낱개당 3원 두번째 브랜드는 1세트 15원, 낱개당 4원일 때 첫번 째 브랜드의 1세트를 사면 낱개 6개로 12원 첫번 째 브랜드의 낱개 4개로 사면 12원이다. 첫번째 브랜드의 1세트를 구매한 가격과 낱개로 4개를 구매한 가격이 똑같다. 따라서, 출력은 12가 나와야 한다. 2번째 경우를 보듯, 세트로만 샀을 경우와 낱개로만 샀을

[자바] 백준알고리즘 10952번 A+B - 5 (B5) [내부링크]

// 2022-07-30 // A+B - 5 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int A, B; while(true) { //무한 반복 StringTokenizer st = new StringTokenizer(br.readLine()); A = Integer.parseInt(st.nextToken()); B = Integer.parseInt(st.nextToken()); if(A==0 & B==0) return; //A,B

[자바] 백준알고리즘 17478번 재귀함수가 뭔가요? (S5) [내부링크]

//2022-08-01 // 재귀함수가 뭔가요? package com.ssafy.ws.problem; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { // 결과를 한 번에 출력하기 위한 StringBuilder static StringBuilder sb = new StringBuilder(); static String s=""; //언더바 초기화 static void chatbot(int n) { //입력한 n이 들어온다.(Ex. N=2 => 2,1,0) String line = s; if (n==0) { //n이 0이되면 마지막 문장을 실행하고 return으로 종료한다. sb.append(line+"\"재귀함수가 뭔가요?\"\n"); sb.append(line+"\"재귀함수는 자기 자신을 호출하는 함수라네\"\n"); sb.append(line+"라고 답변하였지.\n"); ret

[자바] 백준알고리즘 2920번 음계 (B2) [내부링크]

// 2022-07-16 // 음계 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static String asc = "12345678"; //오름차순 문자열 static String des = "87654321"; //내림차순 문자열 public static void main(String args[]) throws IOException { String s, ans; //입력받은 문자열, 정답 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); s = br.readLine(); s = s.replaceAll("\\s", ""); //모든 공백 제거 if(s.equals(asc)) { //입력

[자바] 백준알고리즘 10818번 최소, 최대 (B3) [내부링크]

// 2022-07-17 // 최소, 최대 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static int N; //정수 N개 static int [] arr; //정수 배열 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); arr = new int[N]; StringTokenizer st = new StringTokenizer(br.readLine()); //정수입력 fo

[자바] 구현알고리즘 - 상하좌우 [내부링크]

import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class realization1 { static int N; //N*N 전체좌표 크기 //방향종류 static String [] move_types = {"L","R","U","D"}; //[x,y] static int [] dx = {0,0,-1,1}; static int [] dy = {-1,1,0,0}; public static void main(String args[]) throws IOException { String [] arr; //방향 배열 int x = 1, y = 1; //시작좌표 int nx = 0, ny = 0; //임시좌표 BufferedReader br = new BufferedReader(new InputStreamRe

[자바] 백준알고리즘 10951번 A+B - 4 (B5) [내부링크]

// 2022-07-17 // A+B - 4 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { int A = 0, B = 0; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; while((str = br.readLine()) != null) { //str 문자열 변수에 입력한 문자를 할당하여 null인지 확인 StringTokenizer st = new StringTokenizer(str, " "); //null이 아니라면 해당 문자열을 " "으로 구분 A = In

[자바] 백준알고리즘 1913번 달팽이 (S3) [내부링크]

<문제풀이> // 2022-07-18 // 달팽이 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static int [][] map; //달팽이 표(N*N) static int n, nx, ny; //찾을 숫자, 찾을 숫자의 x좌표, 찾을 숫자 y좌표([x,y]) static int N; //N*N배열 생성을 위한 숫자 //[x,y] //방향을 위한 x좌표, y좌표 static int [] dx = {-1, 0, 1, 0; //위쪽,오른쪽,아랫쪽,왼쪽 static int [] dy = {0, 1, 0, -1}; public static void main(String[] args) throws IOException { int x, y; //현재 x좌표, y좌표 int idx = 0, nu

[자바] 백준알고리즘 4673번 셀프 넘버 (S5) [내부링크]

// 2022-07-18 // 셀프 넘버 public class Main { static int [] N = new int [10001]; //셀프넘버 10,000자리 생성 public static void main(String[] args) { String s_num; //문자열인 숫자 int i_num; //셀프넘버 아닌 숫자 = 원래숫자 + 각 자리수의 숫자들 for(int i=0; i<N.length; i++) { s_num = Integer.toString(i); 정수형인 숫자를 문자열로 형변환 i_num = i; //셀프넘버 아닌 숫자 = 원래숫자 if(s_num.length()==1) { //1, 3, 5, 7, 9와 같이 한 자리수인 경우 i_num += Integer.parseInt(s_num); //셀프넘버 아닌 숫자 = 셀프넘버 아닌 숫자 + 각 자리수의 숫자들 N[i_num] = 1; //셀프넘버 아닌 숫자는 해당 인덱스에 1 할당 } else { //여러 자리

[자바] 백준알고리즘 1152번 단어의 개수 (B2) [내부링크]

// 2022-07-19 // 단어의 개수 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); System.out.print(st.countTokens()); //Token개수로 단어 개수 출력 } } <문법> StringTokenizer의 개수 : st.countTokens() 공백으로 끊은 토큰의 전체 개수를 알 수 있다. https:/

[자바] 백준알고리즘 1546번 평균 (B1) [내부링크]

// 2022-07-20 // 평균 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); //점수 개수 double[] arr = new double [N]; //점수 배열 StringTokenizer st = new StringTokenizer(br.readLine()); for(int i=0; i<N; i++) { arr[

[자바] 백준알고리즘 2440번 별 찍기 - 3 (B4) [내부링크]

// 2022-07-21 // 별 찍기 - 3 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); for(int i=0; i<N; i++) { for(int j=0; j<N-i; j++) { System.out.print("*"); } System.out.print("\n"); } } } https://www.acmicpc.net/problem/2440 2440번: 별 찍기 - 3 2440번 제출 맞힌 사람 숏코딩 재채점 결과

[자바] 백준알고리즘 11047번 동전 0 (S4) [내부링크]

import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.Arrays; import java.util.Collections; public class Main { static int N,K; static Integer[] coins; public static void main(String[] args) throws IOException { int ans = 0; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); //동전 종류 개수 K = I

[자바] 백준알고리즘 2438번 별 찍기 - 1 (B5) [내부링크]

// 2022-07-10 // 별 찍기 - 1 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String args[]) throws IOException { int N; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); for(int i=1; i<=N; i++) { for(int j=1; j<=i; j++) { System.out.print("*"); } System.out.print("\n"); } } } https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 2438번 제출 맞힌 사람 숏코딩 재채점

[자바] 백준알고리즘 2439번 별 찍기 - 2 (B4) [내부링크]

// 2022-07-13 // 별 찍기 - 2 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String args[]) throws IOException { int N; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); for(int i=1; i<=N; i++) { for(int j=1; j<=N-i; j++) { System.out.print(" "); } for(int j=1; j<=i; j++) { System.out.print("*"); } System.out.println(""); } } } https://www.acmicpc.net

[자바] 백준알고리즘 11399번 ATM (S4) [내부링크]

// 2022-07-14 // ATM import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.Arrays; public class Main { static int N; //사람 수 static int [] time; //사람별 인출하는데 걸리는 시간 static int prev, sum; //누적 시간, 총시간 public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); //사람 수 입력 time = new int [N]; StringToken

[자바] 백준알고리즘 13305번 주유소 (S4) [내부링크]

// 2022-07-14 // 주유소 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int N; //도시 개수 static long [] distance; //도시와 도시사이 거리 static long [] city; //도시별 가격 static long min_cost, ans = 0; //최저가격, 총비용 public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); distance = new long[N-1]; c

[자바] 백준알고리즘 2839번 설탕배달 (S4) [내부링크]

// 2022-07-15 // 설탕 배달 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class backjoon2839 { static int N; //설탕무게 public static void main(String args[]) throws IOException { int tmp = 0, min = 0; //봉지개수, 최소봉지개수 int i=1; //5kg봉지수 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); while(N-5*i>=0) { //설탕무게 - 5kg*i에서 0보다 크거나 같게 한 이유는 //설탕무게가 15kg인경우: 15-5*3일경우 (5kg으로 다 옮길 수 있다) if((N-5*i)%3

[자바] 백준알고리즘 1157번 단어 공부 (B1) [내부링크]

// 2022-07-15 // 단어 공부 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { static String word; //단어 static int [] alphabet = new int [26]; //알파벳 갯수: A~Z까지 26개 배열 생성 public static void main(String args[]) throws IOException { int max = 0; //최대 갯수 char chr = ' '; //최대 갯수 문자 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); word = br.readLine().toUpperCase(); //모든 문자를 대문자로 for(int i=0; i<word.length(); i++) { alpha

[자바] 백준알고리즘 2562번 최댓값 (B3) [내부링크]

// 2022-07-16 // 최댓값 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { static int [] N = new int [9]; //9개의 숫자 배열 public static void main(String[] args) throws IOException { int max = 0, idx = -1; //최댓값, 인덱스 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //9개의 숫자 입력 for(int i=0; i<9; i++) { N[i] = Integer.parseInt(br.readLine()); } //최댓값구하기 for(int i=0; i<N.length; i++) { if(N[i]>max) { max = N[i]; idx = i+

[JAVA] 백준알고리즘 2675번 문자열 반복 (B2) [내부링크]

// 2022-07-16 // 문자열 반복 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int T; //테스트케이스 수 public static void main(String[] args) throws IOException { int R; //문자 반복 횟수 String S, P; //기존 문자열, 문자 반복한 문자열 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; T = Integer.parseInt(br.readLine()); //문자열 입력 for(int i=0; i<T; i++) { st = new StringTokenizer(br

[Python] 백준알고리즘 10845번 큐 (S5) [내부링크]

이번 문제에서는 큐에 대한 알고리즘 개념과 파이썬 리스트의 개념을 잘 알고 있으면 된다. 큐는 출처:https://namu.wiki/w/%ED%81%90(%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0) 큐(자료구조) - 나무위키 3 역링크 토론 편집 역사 ACL 큐(자료구조) 최근 수정 시각: 2021-03-24 15:48:46 분류 자료구조 1 . 개념 2 . 구현 2.1 . 라이브러리(c++) 2.1.1 . 예시 소스코드 2.2 . 파이썬 3 . 특수한 형태의 큐 3.1 . 원형 큐 3.2 . 우선순위 큐 3.3 . 데크(Deque; Double Ended Queue) 4 . 용도 Queue [1] 1. 개념 [편집] 선입선출(先入先出, First In First Out; FIFO)의 자료구조 . 대기열이라고도 한다. Queue라는 단어 자체가 표 같은... namu.wiki 선입선출(FIFO) 방식으로 리스트의 맨 앞쪽 => 큐의 맨 뒤 리스트의 맨 뒤쪽 =

[Python] 백준알고리즘 10828번 스택 (S4) [내부링크]

이번 문제는 스택에 대한 알고리즘과 리스트의 기본 개념이 필요한 문제이다! 스택은 출처: https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D 스택 - 위키백과, 우리 모두의 백과사전 1월 29일부터 2월 26일까지 동유럽 에디터톤 이 진행됩니다. 2월 4일부터 38일 동안 2022 베이징 동계 올림픽 에디터톤 이 진행됩니다. 위키컨퍼런스 서울 2022 기획을 위한 커뮤니티 참여 설문 조사 에 참여해 주세요. 53개 언어 접힘 스택 위키백과, 우리 모두의 백과사전. 다른 뜻에 대해서는 스택 (동음이의) 문서를 참고하십시오. 스택 ( stack )은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다. 스택은 한 쪽 끝... ko.wikipedia.org LIFO(Last In Frist Out) 방식으로 리스트의 맨 뒤쪽 => 스택 입출력 위치 따라서,

[Python] 백준알고리즘 2161번 카드 1 (B1) [내부링크]

위 문제를 쉽게 정리하자면 N = 4 일경우, 1 2 3 4 순으로 제일 위에 있는 카드가 1 제일 마지막에 있는 카드가 4 이다. 이것을 한 장을 버리고 다음 장을 뒤로 넘기는 것을 반복한다. CASE 1: 1을 버리면 => 2 3 4 2를 뒤로 보내면 = > 3 4 2 최종 : 3 4 2 버린카드 : 1 CASE 2: 3을 버리면 => 4 2 4을 뒤로 보내면 = > 2 4 최종 : 2 4 버린카드 : 3 CASE 3: 2를 버리면 => 4 버린카드 : 2 제일 마지막에 남은 카드 : 4 그래서, 문제에서 버리는 카드를 나열하면 1, 3, 4 이고, 마지막에 남은 카드를 추가해서 출력하게 되면 최종답은 1, 3, 4, 2 가 된다. N번 카드를 받는다. N = int(input()) N번 까지의 카드리스트를 만든다. 여기서, 카드리스트는 C로 정했다. for문을 간략문으로 해서 반복문을 작성할 수 있다. C=[x for x in range(1,N+1)] 카드리스트 C에 한 장이

코로나 확진 후기 [내부링크]

그동안 백준알고리즘을 매일매일 풀어가면서 도움이 될만한 풀이가 되거나, 혹은 풀면서 어려웠던걸 다른 사람들도 이 문제를 풀 경우 어렵지 않을까 하는 생각이 들어서 시간을 날 때 짬짬이 글을 썼었다... 하지만 이번에는 코로나를 피할 수 없었다.... 2022년 2월 26일 (토) 자가진단 키트를 통해 '양성' 반응이 나왔다. 26일 이전에 목이 조금씩 아파왔지만 증상은 단순 목감기같이 목이 칼칼했다. 자가키트를 사용했지만 계속 음성이 나와 PCR검사를 받을 수 없었다.... 26일 당일날, 그 날따라 아침에 일어나는게 너무 힘들었었다. 그리고 열이 조금 있는거 같아 체온을 재니 무섭게도 37.5도 이상으로 나왔다. 코는 막힌 상태로 콧물이 줄줄 흘렀고 목은 더 아팠다. 혹시나 하는 마음에 자가키트를 통해 양성 반응이 나왔고 바로 보건소로 향했다. 보건소에 줄을 기다리는데 1시간 반 조금 넘게 소요되었다. 2022년 2월 27일(일) PCR검사 결과 양성 판정이 나왔고, 자가격리 통지

[SSAFY 8기] 삼성 청년 SW 아카데미 전공자 최종합격 후기 [내부링크]

이번 게시물은 SSAFY 8기 지원 및 합격 후기를 알려주고 싶어 작성하게 되었다. 우선 SSAFY는 삼성 청년 SW 아카데미로 삼성의 SW 교육 경험과 고용노동부의 취업지원 노하우를 바탕으로 취업 준비생에게 SW 역량 향상 교육 및 다양한 취업지원 서비스를 제공하여 취업에 성공하도록 돕는 프로그램이다. 알고리즘과 웹 프로그래밍에 대해 배우고 싶었던터라 예전부터 SSAFY에 관심이 많았었고 주변사람들이 SSAFY를 많이 추천해주었지만 그 때 당시, 회사에 근무하고 있었고 지원할 수 있는 여건이 되지 않았다. SSAFY 8기 지원공고를 보게 된건 올해 5월 초였다. 지원공고는 ~ 5월 16일까지였다. 다시 한번 기회가 찾아왔다. 하지만, 고민을 안했다면 거짓말일것이다. 정말 내가 SSAFY가 필요한지, SSAFY를 통해 알차게 1년을 보낼 수 있는지 등 많은 고민을 했었다. 지원공고를 매일같이 바라보면서 심장이 두근대면서 설레는 마음은 멈추지 않는다는것을 알았다. 나는 마음이 시키는대

[자바] 백준알고리즘 5585번 거스름돈 (B2) [내부링크]

import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String args[]) throws IOException { int [] money = {500, 100, 50, 10, 5, 1}; // int N; //물건 값 int count=0; //잔액 동전 개수 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = 1000-Integer.parseInt(br.readLine()); //1000에서 물건 값을 뺀 잔액 for(int i=0; i<6; i++) { count+=(N/money[i]); N%=money[i]; } System.out.println(count); } } #자바 #JAVA #백준알고리즘

[자바] 그리디알고리즘 - 큰 수의 법칙 [내부링크]

import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.Arrays; import java.util.Collections; public class Main { public static void main(String args[]) throws IOException { Integer [] N; int M, K; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = new Integer[Integer.parseInt(st.nextToken())]; //배열의 크기 M = Integer.parseInt(st

[자바] 그리디알고리즘 - 숫자 카드 게임 [내부링크]

import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.Arrays; public class Main { static int [][] card; //카드 static int N,M; //N*M static int ans = 0; //정답 public static void main(String[] args) throws IOException { int [] nums; //각 행의 최솟값 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); M

[Python] 백준알고리즘 2750번 수 정렬하기 (B1) [내부링크]

위 문제에서 첫째 줄 부터는 몇 개를 입력할건지 N을 정해주고 그 다음줄부터는 차례대로 숫자를 입력하고 입력한 숫자를 오름차순으로 정렬해주면 된다. 먼저, 오름차순으로 정렬해서 출력해줄 리스트 변수를 선언해준다. M=[] 몇 개를 입력할지는 N = int(input()) 으로 N 변수에 값을 할당해주고 (여기서 input()은 입력하는 함수인데 문자열로 입력된다. int()로 감싸주면서 문자열로 입력된 입력값을 int로 변환해준다.) 입력한 N 개만큼 for 문을 통해 입력하여 리스트 M에 하나씩 넣어준다. for _ in range(N): M.append(int(input()) (append()함수를 통해 int(input())으로 입력된 값을 M 리스트에 삽입한다.) 그리고 리스트 M 을 오름차순으로 정렬 후 for 문을 통해 하나씩 출력해준다. for i in sorted(M): print(i) (sorted()함수를 통해 M리스트를 오름차순으로 정렬해준다.) 소스는 아래에 있

[Python] 백준알고리즘 2751번 수 정렬하기 2 (S5) [내부링크]

이 문제는 앞서 2750번 문제와 똑같지만 수의 개수 범위가 조금 더 크다. 그렇기때문에, 2750처럼 풀면 '시간초과' 로 풀지 못하게 된다. 여기서 입력방식을 input() 이 아닌 readline() 방식으로 변경할 것이다. import sys sys.stdin.readline() 이 방식은 input() 입력방식보다 좀 더 빠르게 처리할 수 있어서 '시간초과'의 문제점을 해결할 수 있다. 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ import sys M=[] N=int(sys.stdin.readline()) for _ in range(N): M.append(int(sys.stdin.readline())) for i in sorted(M): print(i) <실행결과> 2751번 문제는 2750번보다 좀 더 심화된 문제이다. 만약에 풀지 못했다면 2750번을 먼저 풀고 도전하는 것을 추천한다. 2750번 문제 풀이는 https://blog.naver.com/yu_jin

[Python] 백준알고리즘 10989번 수 정렬하기 3 (S5) [내부링크]

2751번 문제보다 수의 개수의 범위가 더 많아졌다. 이 문제에서는 입력방식을 readline() 만 해서 해결할려고 한다면 '메모리초과' 가 발생한다. 그럼 어떻게 할까? 문제에서 보면 10000보다 작거나 같은 자연수를 입력한다 라는 문구를 확인할 수 있다. 이번 문제에서 해결점은 리스트의 길이를 최소화하여 출력하는 방법이다. 리스트 M을 10000으로 길이를 한정적으로 선언해준다. M = [0]*10000 그리고, 지금까지 2751번 수 정렬하기 문제를 푼 것처럼 입력 받는 방식을 다음과 같이 한다. import sys N = int(sys.stdin.readline()) for _ in range(N): n = int(sys.stdin.readline()) M[n-1]+=1 여기서 우리는 입력한 n 수를 M의 index로 하여 1을 더하여 개수를 증가시켜줄 것이다. index의 순서는 0, 1, 2, 3, ... 이므로 만일, 우리가 n 에 1을 입력하게 된다면 index 0

[Python] 백준알고리즘 11931번 수 정렬하기 4 (S5) [내부링크]

이번 문제에서 2751번 수 정렬하기 2를 풀었으면 쉽게 풀 수 있는 문제이다. 수 정렬하기 2 문제에서 간단하게 내림차순을 해주면 된다. 내림차순을 하는 방법으로 reversed() 함수를 사용한다. reversed() 함수는 리스트 요소를 뒤 ~ 앞으로 순서를 변경해주는데 만약, 1, 5, 2, 4, 3 일 경우 reversed()를 한다면 3, 4, 2, 5, 1 순으로 출력이 된다. 여기서 우리는 알아야할 점은 reversed() 함수로 내림차순을 할 경우 반드시! 리스트의 요소가 오름차순으로 되어 있어야 한다. 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ import sys M=[] N=int(sys.stdin.readline()) for _ in range(N): M.append(int(sys.stdin.readline())) for i in reversed(sorted(M)): # sorted로 오름차순 후 reversed()로 뒤집어서 내림차순 print(i)

[Python] 백준알고리즘 15688번 수 정렬하기 5 (S5) [내부링크]

위 문제에서 해당 수열은 k 번째가 증가할수록 수가 커지는 것을 알 수 있다. 비 내림차순 ≠ 오름차순 이지만 여기서 k 번째가 증가할수록 수가 커지므로 오름차순 정렬로 풀면 간단하게 풀 수 있는 문제이다. 위 문제 알고리즘은 2751번 수 정렬하기 2 에서 적용한 코드와 동일하게 하면 맞출 수 있다. 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ import sys M=[] N=int(input()) for _ in range(N): M.append(int(sys.stdin.readline())) for i in sorted(M): # sorted로 오름차순정렬 print(i) <실행결과> 수 정렬하기 문제는 이 문제를 통해 끝이 났다. https://www.acmicpc.net/problem/15688 15688번: 수 정렬하기 5 문제 N개의 수가 주어졌을 때, 이를 비내림차순으로 정렬하는 프로그램을 작성하시오. 길이가 K인 수열 A가 A 1 ≤ A 2 ≤ ... ≤ A

[Python] 백준알고리즘 1181번 단어정렬 (S5) [내부링크]

수 정렬하기 문제를 모두 풀어보았다면 위 문제는 쉽게 문제를 풀어갈 수 있다. 이 문제에서는 정렬 조건이 2가지가 있다. 1. 단어 길이 수 2. 같은 길이일 경우 알파벳 순 그리고, 또 한 가지 고려해야할 점은 단어를 중복입력해도 한 개의 단어로 처리해야한다. import sys에서 sys.stdin.readline().rstrip()를 활용하여 입력을 받을 것이다. (input()보다 처리속도가 빠르므로 고난도의 문제일수록 활용하자!) 변수 N에 입력할 단어 개수를 넣어준다. N=int(sys.stdin.readline().rstrip()) 입력하는 단어를 M 리스트의 요소로 추가해준다. for _ in range(N): M.append(sys.stdin.readline().rstrip()) 그 다음 중복되는 단어를 없애주기 위해 set() 함수를 사용해준다. set() 함수 사용 후, 반드시 다시 list() 함수를 통해 변환해주어야 리스트로 받을 수 있다. M=list(set

[Python] 백준알고리즘 2798번 블랙잭 (B2) [내부링크]

위 문제에서는 3장의 카드를 골라 M과 가장 가까운 카드 수의 합을 구하는 문제이다. 3장의 카드 합 <= M 이라는 것을 알 수 있다. 먼저 입력 함수를 받기 위해 import sys 몇 장의 카드를 받을 것이며 최대의 합 M을 입력한다. N,M = map(int, sys.stdin.readline().rstrip().split()) 입력 한 카드의 수는 리스트 C에 받을 것이다. for _ in range(N): C.append(sys.stdin.readline().rstrip().split()) 여기서 생각해보아야 할 점은, 처음에는 5, 6, 7을 뽑을 것이다. 두번쨰는 5, 6, 8 세번쨰는 5, 6, 9 네번째는 5, 7, 6을 뽑게 되면 5, 6, 7과 같게 된다. 이렇게 뽑았던 카드를 순서를 바꿔서 다시 뽑는다면 연산시간이 오래 걸릴 것이다. 따라서, 네번째는 5, 7, 8 다섯번째는 5, 7, 9 여섯번째는 5, 8, 9 일곱번째는 6, 7, 8이 될 것이다. 결국

[Python] 백준알고리즘 2935번 소음 (B3) [내부링크]

입력 조건을 살펴보면 첫째 줄에는 양의 정수 A 둘째줄에는 연산자 + 혹은 * 셋째 줄에 양의 정수 B가 주어진다. 각각 변수를 n, s, m 으로 주고 문제를 풀었다. 둘째줄에 조건을 만족하기 위해 우리는 if ~ else 문을 활용해야한다. 파이썬에서 if ~ else 문은 if (조건문): (조건만족 시 실행문) else: 의 문법을 활용할 수 있다. 출력은 + 연산자일 경우 A+B * 연산자일 경우 A*B 의 식을 통해 결과값을 나타낼 수 있다고 주어져 있다. 그럼 if ~ else 문의 조건 만족 시 실행문 공간에 각각 A+B, A*B를 print() 문으로 출력해주면 된다. 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ n=int(input()) s=input() m=int(input()) if s=="+": print(n+m) else: print(n*m) <실행결과> https://www.acmicpc.net/problem/2935 2935번: 소음 문제 수업 시

[Python] 백준알고리즘 1929번 소수 구하기 (S2) [내부링크]

이번 문제에서는 M과 사이의 소수 문제를 구하는 문제이다. 소수란? 1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수 예를 들어, 1을 제외한 2, 3, 5, 7, 11, 13...을 말한다. 따라서 위 예시 입력에서 3과 16사이의 소수를 출력하는 것이므로 3, 5, 7, 11, 13이다. 가장 쉬운 방법은 3에서 16까지의 자연수를 자기자신을 제외해서 사잇수를 모두 나눠보면 된다. 하지만!! 그렇게 하면 시간초과에 걸려 모두 나눠볼 수 는 없다. 시간을 단축하기 위해서 나눠보는 자연수의 개수를 줄이면 된다. 이를 사용하는 방법이 제곱근이다. 소수를 구할 수 있는 최대 숫자는 N 자리에 입력한 16이다. 16은 1, 2, 4, 8, 16 으로 우리는 자연스럽게 2로 나누면 8이 된다는 것을 알 수 있다. 따라서, 4까지만 나눠보면 8을 굳이 나누지 않아도 소수가 아니라는 것을 알 수 있다. 18은 1, 2, 3, 6, 9, 18 이다. 18의 제곱근은 4.2426...이다.

[Python] 백준알고리즘 1978번 소수 찾기 (S4) [내부링크]

이번 문제는 소수 찾기로 N개 중에 소수가 몇 개인지 출력하는 문제이다. 소수란? 1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수 그렇다면 소수를 판별할 수 있는 방법은 무엇이 있을까? 바로 ' 에라토스테네스의 체 ' 의 방법을 사용하는 것이다. 에라토스테네스의 체는 1을 제외하고 2부터 N까지의 자연수를 하나하나 자연수로 나누어보는 방법이다. 에라토스테네스의 체를 자세히 알고 싶으면 아래의 링크를 통해서 시뮬레이션을 보면 된다. https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전 동유럽 에디터톤 이 1월 29일부터 2월 26일까지 진행됩니다. 57개 언어 접힘 에라토스테네스의 체 위키백과, 우리 모두의 백과사전. 수학에서 에라토스테네스의 체는 소수 를 찾는 방법이다. 고

[Python] 백준알고리즘 3046번 R2 (B5) [내부링크]

평균 S = (R1+R2)/2 이다. 여기서, R2을 구하는 문제다. R2 = S*2-R1 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ r1,s = map(int, input().split()) print(s*2-r1) <실행결과> https://www.acmicpc.net/problem/3046 3046번: R2 3046번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 R2 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 19554 15672 14544 81.233% 문제 두 숫자 R1과 R2가 있을 때, 두 수의 평균 S는 (R1+R2)/2와 같다. 상근이는 정인이 생일 선물로 두 숫자 R1과 R2를 주려고 한다. 생일 파티에서 상근이는 정인이에게 이 두 숫자를 말해주고, 정인이는 이 숫자를 받아 적는다. 그리고 나서 기쁜 마음으로 1년동안 이 숫자를 외우면서 산다. 상근이는 R1과 R2를 엄청난 고... www.acmicpc.net

[Python] 백준알고리즘 2530번 인공지능 시계 (B4) [내부링크]

첫째 줄에는 각각 시, 분, 초를 입력받고 둘째 줄에는 오븐구이하는데 필요한 시간이 몇 초인지를 입력받는다. 시 = h 분 = m 초 = s 오븐구이하는데 필요한 시간(초) = n 이라고 변수를 정했다. 디지털시계는 23시 59분 59초에서 1초가 지나면 0시 0분 0초가 된다는 조건을 생각해보면 => 24시가 되었을 경우는 0시가 된다. 여기서 우리는 생각을 해봐야 한다. 오븐구이하는데 필요한 시간을 '초'로 계산되므로 각각 시, 분, 초를 모두 '초'로 바꿔서 오븐구이하는데 필요한 시간을 더하고 다시 시, 분, 초로 환산할 수 있다. 1시간 = 60분 1분 = 60초 이므로 시(h) = 시(h)*60*60(초) 분(m) = 분(m)*60(초) 로 계산할 수 있다. 훈제오리구이 요리가 끝나는 시간 = 시(h)*60*60+분(m)*60+초(s) 로 식을 세울 수 있다. 이제 다시 훈제오리구이 요리가 끝나는 시간을 시, 분, 초로 계산할 때 우리는 파이썬의 divmod() 함수를 사용

[Python] 백준알고리즘 2558번 A+B -2 (B5) [내부링크]

1000번 문제와 비슷하지만 이번에는 입력방식이 조금 다르다. 예제입력에 보면 1과 2를 한 줄씩 입력되어있다. 따라서, 이번 문제에는 단순히 각 변수에 input()으로 입력받은 문자열을 int형으로 변환해서 출력해주면 된다. 변환하는 방법은 int(input())으로 int()에서 괄호안에 input()만 넣어서 각 변수에 할당시켜주면 된다. 출력은 print() 함수를 통해 A+B를 출력시키면 된다. 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ a = int(input()) b = int(input()) print(a+b) <실행결과> https://www.acmicpc.net/problem/2558 2558번: A+B - 2 2558번 제출 맞힌 사람 숏코딩 재채점 결과 디버그 채점 현황 강의 A+B - 2 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 63338 45756 41238 74.005% 문제 두 정수 A와 B를 입력받은 다음,

[Python] 백준알고리즘 2163번 초콜릿 자르기 (B3) [내부링크]

문제가 조금 길다.... 문장을 끊어서 보면, N*M 초콜릿을 1*1 크기로 전부 쪼개기 위해서 최소 몇번을 쪼갤 수 있는가의 문제이다. 예제에서 보여주듯 생각해보면, 2*2로 된 초콜릿은 3번이면 되고, 1*1은 0번이다. 그럼 3*2는? 5번이 된다. 즉, N*M의 수보다 -1 작은 횟수로 1*1 크기로 쪼갤 수 있다 라는 것을 알 수 있다. 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ n,m = map(int, input().split()) print(n*m-1) <실행결과> https://www.acmicpc.net/problem/2163 2163번: 초콜릿 자르기 2163번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 초콜릿 자르기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 22816 15813 13856 71.674% 문제 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에

TurtleGraphics 실행해보기 [내부링크]

우분투에 Visual Studio Code를 활용하여 파이썬공부 시작!! Visual Studio Code 설치방법은 구글에 검색하면 정말 많으니 참고바람 거북이 그래픽 일명, 'Turtle Graphics' import turtle as t t.Shape("turtle") 'turtle'이라는 모듈을 import를 시키는데 여기서, 'as t'를 입력하게 되면 'turtle'이라는 모듈을 't'라고 쓴다. import turtle import turtle as t turtle.Shape("turtle") t.Shape("turtle") 어렵게 생각하지말고 한마디로, 'turtle' 이라는 모듈에게 't'라는 별명을 붙여주었다고 생각하자!! 나는 이렇게 이해했다... 저 두 문장만 입력하면 된다고 해서 입력했는데 TurtleGraphicError: There is no shape named .. 에러가 뜬다.. shape에서 생긴 오류라고 하는데 'turtle' 철자가 오류났을 경우

Pyqt5를 이용한 간단한 로그인 [내부링크]

Pyqt5를 이용하여 파이썬 GUI로 간단하게 로그인하는 코딩을 해보았다.. QT Creater설치 방법은 https://blog.naver.com/yu_jin456/221468129043 아래주소에 들어가면 된다. 일단 먼저 qt creator로 프로젝트를 만들면 .ui 파일이 만들어진다. 원하는 디자인을 만든 다음에 혹시, 만약 pyqt4나 pyqt5를 설치하지 않았으면 다음과 같이 터미널에 입력해준다. sudo apt-get install pyqt5-dev-tools sudo apt-get install pyqt4-dev-tools 그 다음 .ui 파일이 있는 디렉토리에 들어가서 .ui파일을 .py로 바꿔준다. pyuic5 *.ui -x -o [파일명].py 글쓴이는 dialog.ui를 다음과 같이 dialog.py로 변환된걸 확인할 수 있다. 자, 그런 다음에 글쓴이는 파이참으로 dialog.py를 열었다. 그럼 요런식으로 변환이 되었다고 친절하게 알려준다. 그러면 제일 먼저

[우분투] QT Creater 설치 [내부링크]

글쓴이가 본 컴퓨터 Windows에 설치하지 않고 Oracle VM VirtualBox를 통해 우분투에 사용하는 이유는 가상머신에 설치하면 가상머신을 삭제하면 다 날라가지만 본 컴퓨터에 설치하면 깔끔하게 삭제하기가 어렵기 때문이다. 예전에는 CentOS를 사용했었는데 CentOS는 GUI와 마우스키보드 통합이 안되기때문에 매우 불편하다. 하지만 우분투는 지원을 다 해준다. 편하게 편하게 살자 어찌되었건 우분투에서 QT Creater를 설치해보도록 하자 우분투는 FireFox라는 웹브라우저를 지원한다. 주소창에 http://download.qt.io/official_releases/qt/5.12/5.12.0/ 다음과 같이 입력을 한 후, Index of /official_releases/qt/5.12/5.12.0 Name Last modified Size Metadata Parent Directory - submodules/ 05-Dec-2018 09:39 - single/ 05-De

[우분투] MySQL 설치 [내부링크]

오늘은 데이터베이스를 활용하기위해서 MySQL을 설치해보았다. 생각보다 정말 간단했다. 먼저 터미널을 열어서 su- 를 입력해보자. 이는, root계정으로 들어가는 명령어이다. 패스워드를 입력하라고 하는데 ...... root계정 패스워드를 모르겠다. 하면! sudo passwd root 라고 입력하게 되면 새로운 패스워드를 지정하면 된다. root계정 패스워드를 지정을 해서 안다면 이 과정은 생략해도 된다. 그러면 이렇게 ~#이라고 뜨게 된다. 자 그러면 이때, 다음과 같이 입력한다. sudo apt-get update sudo apt-get install mysql-server 그러면 열심히 돌아가면서 설치가 완료된다. mysql -u [사용자아이디] -p mysql -u root -p -u 는 사용자를 지정하기 위해서고, -p 는 패스워드를 입력하기위한 옵션이 된다. MySQL의 root의 사용자로 들어갈 것이다. 비밀번호가 없기때문에 그냥 Enter치면 접속이 된다. 그럼 이

[우분투] MySQL 사용자 생성 [내부링크]

저번 게시글을 통해 MySql을 설치해보았다. https://blog.naver.com/yu_jin456/221472620755 설치에 관해 보고 싶다면 위 주소에 들어가서 보면 된다. 생각보다 간단하기 때문에 부담갖지 않고 한번 시도해보자! 오늘은 Mysql의 루트로 들어가서 나만의 사용자를 만들고, 그 사용자에게 권한을 부여하는걸 해볼 것이다. root 계정으로 들어가서 mysql -u root -p 위의 소스코트같이 쳐주면 mysql을 root사용자로 들어갈 수 있다. 아! 참고로 사용자 계정이면 ~$ 루트 계정이면 ~# 으로 바뀌는것을 확인할 수 있다. 루트계정에 관한 설명을 보고 싶다면 Mysql설치 게시글이 적힌 위 주소에 들어가면 간단하게 설명이 되어 있다. 자 그러면, 이렇게 mysql에 들어와있다. root 계정에 있는 Database를 보고 싶다면 다음과 같은 명령어를 치면 된다. show databases; 그럼 위와 같이 생성된 Database를 확인할 수 있다

[정보처리기사 필기] 2017년 1회 기출문제 풀이 (1과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아서 보면 됩니다 문제 1번. 1. 일반 집합 연산자 2. 순수 관계 연산자 3. 순수 관계 연산자 4. 순수 관계 연산자 문제 2번. SELECT A.학번, A.이름, B.학점 FROM 학생 A, 성적 B WHERE A.학번 = B.학번 AND B.과목이름 = "DB" 라는 문장을 해석해봅시다. SELECT는 사용자가 보고 싶은 속성입니다. FROM을 보면 학생테이블을 A 성적테이블을 B 라고 정의했습니다. 그렇다면 SELECT는 학생 테이블의 학생과 이름 성적 테이블의 학점 부분을 고르겠다는 뜻이됩니다. WHERE문장을 보면 조건을 볼 수 있습니다. 학생 테이블과 성적 테이블의 학번이 서로 같아야 하고, 성적 테이블의 과목이름이 "DB"인 조건이 성립한 튜플을 찾겠다는 것이 됩니다. 성적 테이블에서 DB를 가지고 있는 튜플의 학번은 2000, 3000, 4000이 되겠네요. 그 다음 학생테이블에서 이 학번과 똑같은

[정보처리기사필기] 2017년 2회 기출문제 풀이 (1과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아서 보시면 됩니다. 문제 1번. 트랜잭션의 특성에 관한 문제입니다. 트랜잭션의 특성은 기본적으로 알고 갑시다! 원자성(Atomicity): 완료(Commint)과 복구(Rollback)연산 사용 일관성(Consistency): 일관성 있는 데이터베이스 상태 독립성(Isolation): 동시에 병행 실행되는 경우 끼어들 수 없음 완료할때까지 기다려야함 영속성(Durability): 영구적으로 반영 해당 특성은 독립성에 관한 설명이므로 정답은 3번입니다 문제 2번. 1: 시그마 2: 파이 3: 리본 4: 나누기 정답은 1번입니다. 문제 3번. 시스템 카탈로그는 다양한 객체의 정보를 포함하고 있는 시스템 데이터베이스를 말합니다. 시스템 카탈로그가 나오면 데이터사전(Data Dictionary), 메타데이터(Meta-Data)를 꼭 기억해두셔야합니다.!! 시스템 카탈로그는 사용자가 검색은 할 수 있습니다. 단, 내용을 변경할

[정보처리기사필기] 2017년 3회 기출문제 풀이 (1과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아서 보시면 됩니다. 문제 1번. 관계해석에 관한 문제도 자주 출제되는 문제입니다. 관계해석은 Codd의 Predicate Calculus를 기억해둡시다! 비절차적 특성을 지니며 질의어로 표현 튜플 관계해석과 도메인 관계해석으로 분류됩니다. 4번은 관계대수에 관한 설명입니다. 따라서, 정답은 4번입니다. 문제 2번. 색인 순차 파일은 레코드 키 항목만을 모은 색인을 구성한 방식입니다. 색인을 이용한다는 점을 생각해둡시다! 순차파일의 단점을 보완한다고 생각하면 더욱 수월하게 풀 수 있습니다. 순차파일의 단점: 파일의 재구성으로 인한 시간이 오래걸림 검색이 느림 색인도 오버플로 구역이 필요합니다. 따라서, 정답은 3번입니다. 문제 3번. 뷰는 가상 테이블입니다. ALTER문을 사용할 수 없는 특징을 생각해봅시다. 연산에 대한 제약이 있다는 것을 알 수 있습니다. 따라서, 정답은 3번입니다. 문제 4번. 정규화의 목적은 다음

[정보처리기사필기] 2018년 1회 기출문제 풀이 (1과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아서 보시면 됩니다. 문제 1번. 비선형구조는 트리와 그래프입니다. 계층 형식은 그래프입니다. 따라서, 정답은 1번입니다. 문제 2번. BETWEEN은 이상, 이하의 의미와 동일합니다 따라서, 정답은 1번입니다. 문제 3번. 삽입정렬은 순서에 맞게 삽입시켜 정렬합니다. 1회전은 5와 4와 바꾸게됩니다. 따라서, 정답은 3번입니다. 문제 4번. 뷰는 가상 테이블입니다. ALTER문을 사용할 수 없는 특징을 생각해봅시다. 연산에 대한 제약이 있다는 것을 알 수 있습니다. 따라서, 정답은 2번입니다. 문제 5번. 물리적 저장 장치는 내부와 관련되어 있습니다. 내부의를 영어로 internal입니다. 따라서, 정답은 2번입니다. 문제 6번. 해당 문제의 설명은 정규화의 이상현상에 대한 설명입니다. 이상을 영어로 Anomaly입니다. 1: 정규화 2: 프로그램의 코딩 오류 4: =bug 따라서, 정답은 3번입니다. 문제 7번. 전

[정보처리기사필기] 2017년 2회 기출문제 풀이 (2과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아서 보시면 됩니다. 문제 21번. 프로그램 상태워드는 다른 말로 PSW라고 합니다. CPU상태를 보관하고, PSW의 내용을 일부 변경하거나 CPU의 상태를 변경하거나 새롭게 할 수 있습니다. 프로그램 제어와 밀접한 관계를 가지고 있습니다. PSW는 CPU와 관계되어있네요 따라서, 정답은 3번입니다. 문제 22번. 캐시메모리는 CPU와 주기억장치의 속도 차를 줄이기위한 버퍼 메모리입니다. 그렇기때문에 CPU와 주기억장치 사이에 존재합니다. 따라서, 정답은 3번입니다. 문제 23번. 제어장치는 명령어를 해독하여 해당 장치에게 제어 신호를 보내 지시하는 장치입니다. 가상메모리와는 관련이 없습니다. 따라서, 정답은 3번입니다. 문제 24번. 인터럽트 서비스 프로그램이 실행중이어도 현재 처리하는 인터럽트보다 우선 순위가 높으면 그 인터럽트를 먼저 처리합니다. 따라서, 정답은 3번입니다. 문제 25번. 쓰기 정책은 총 3가지 입

[정보처리기사필기] 2017년 2회 기출문제 풀이 (2과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아보시면 됩니다. 문제 21번. 주기억장치를 마치 큰 용량을 가친 것처럼 사용할 수 있게 하는 것은 가상 기억 장치입니다. 문제를 유추해보면 알 수 있습니다. 따라서, 정답은 4번입니다. 문제 22번. 외워둡시다!! 따라서, 정답은 3번입니다. 문제 23번. PACK연산에서 맨 오른쪽 Sign부분에 양수는 C 음수는 D입니다. -456이므로 Sign부분은 D입니다. 십진수 2자리를 차례로 표현하면 45 6D가 됩니다. 따라서 정답은 1번입니다. 문제 24번. 인터럽트 처리 절차는 프로그램 실행중단 - 현재 프로그램 상태 보존 - 인터럽트 처리 루틴 실행 - 인터럽트 서비스 루틴 실행 - 상태복구 - 실행재개 순입니다. 따라서, 정답은 4번입니다. 문제 25번. page falut는 페이지 부재를 말합니다. 페이지 부재는 CPU가 액세스한 가상 페이지가 주기억장치에 없는 경우를 말합니다. 발생하게 되면 요구된 page를

[정보처리기사필기] 2017년 3회 기출문제 풀이 (2과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아보시면 됩니다. 문제 21. 캐시메모리의 매핑 프로세스는 주기억장치로부터 캐시 메모리로 데이터를 전송하는 방법입니다. 주기억장치의 블록들이 한 개의 캐시라인으로 배정되며 적중률이 낮아질 수 있습니다. 따라서, 정답은 4번입니다. 문제 22번. 클록 사이클은 가장 긴 시간을 잡아먹는 t3에 10을 더해 110이 됩니다. 비파이프라인은 60+70+110+80 = 320입니다. 320 / 110 = 2.9가 됩니다. 따라서, 정답은 4번입니다. 문제 23번. DMA는 Direct Memory Access의 약자입니다. CPU 부담 없이 빠른 데이터 전송이 가능합니다. 따라서, 정답은 4번입니다. 문제 24번. 세그먼트 최대 크기 = (페이지번호 + 워드필드) * 논리 주소 (8+8)*4 = 4 따라서, 정답은 4번입니다. 문제 25번. 소프트웨어적인 인터럽트 우선순위 판별방법은 폴링 입니다!! *하드웨어적인 방법은 데이지체

[정보처리기사필기] 2018년 1회 기출문제 풀이 (2과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아보시면 됩니다. 문제 21번. 부동소수점: Sign, 지수부, 가수부 로 나눠집니다. 따라서, 정답은 3번입니다. 문제 22번. ADD명령을 실행하기 위해 AC에 더해서 적재시킵니다. 어울리는 문장은 4번이되겠습니다. 따라서, 정답은 4번입니다. 문제 23번. 모듈러스-14이므로 상태도 14가지입니다. 따라서, 정답은 2번입니다. 문제 24번. SDRAM은 DRAM의 발전된 형태의 동기식 DRAM입니다. CPU가 대기하지 않습니다. 따라서, 정답은 2번입니다. 문제 25번. 미스율은 1 - (적중횟수 / 전체기억장치 액세스 횟수) 액세스된 율 = 45/90 = 0.9 미스율 = 1 - 0.9 = 0.1 이므로 따라서, 정답은 1번입니다. 문제 26번. 하드웨어적으로 인터럽트 우선순위는 데이지체입니다. 소프트웨어적으로는 폴링입니다. 따라서, 정답은 1번입니다. 문제 27번. 세그먼트 레지스터는 운영체제에서 관리합니다.

[정보처리기사필기] 2018년 2회 기출문제 풀이 (2과목풀이) [내부링크]

https://www.comcbt.com/xe/ 여기서 문제를 찾아보시면 됩니다. 문제 21번. 다중 처리기는 하나의 시스템에 여러 개의 처리기를 두어 수행하는 것입니다. 대중성은 관련 없습니다. 따라서, 정답은 3번입니다. 문제 22번. 매핑에 대한 설명입니다. 따라서, 정답은 1번입니다. 문제 23번. 두 데이터 비교 연산은 XOR연산입니다. 따라서, 정답은 1번입니다. 문제 24번. 카르노의 맵으로 푸는 문제입니다. w, x, y, z = 1, 3, 7, 11, 15로 숫자는 카르노 번호를 의미합니다. 2개씩 묶어서 16칸의 카르노 맵을 만듭니다. y`z` y`z yz yz` w`x` X 1 1 X w`x X 1 wx 1 wx` 1 1번 묶음을 X 1 X 1 이라고 봅시다 w`와z는 공통으로 들어갑니다. w`z y는 둘다 들어가므로 무시합니다. 3번 묶음은 X 1 1 1로 보면 y와 z가 공통으로 들어갑니다. yz w,와 z`가 둘다 들어가므로 무시합니다. 따라서, 정답은 2번

[우분투] MySQL GUI 설치 [내부링크]

cmd창으로 입력하기에는 너무 불편해서 gui로 되는것이 있는지 한번 찾아보았다.. Oracle에서는 sql developer라는 gui도구가 있다. 그래서, MySQL에도 있는지 찾아본 결과 workbench라는 것을 알게 되었다. 한번 시도해보자! sudo apt-get install mysql-workbench 위와 같이 명령어를 입력하면 된다 그럼 관련 패키지가 어마무시하게 설치된다. 저번 sql 사용자 추가했을 때 외부접속을 허용했기 때문에 그것을 이용해보려고 한다. 사용자 추가 관련해서는 https://blog.naver.com/yu_jin456/221476659051 여기로 들어가면 된다. 먼저 root 계정을 접속해서 다음과 같이 입력한다. 외부접속 허용은 다음과 같이 #을 삽입해주거나 127.0.0.1을 0.0.0.0으로 설정해야한다. 그러면 0.0.0.0의 의미는 무엇일까, 두 가지 의미가 있다고 한다. 1. 자신이 가지고 있는 모든 IP주소를 의미 2. 자신에게

아나콘다 텐서플로 설치 [내부링크]

1. 아나콘다 설치 시 기본적으로 파이썬 3.8버전이므로 3.8 ~ 3.9버전을 설치해준다. 파이썬 3.8 https://www.python.org/downloads/release/python-3810/ 2. 아나콘다를 설치해준다. https://www.anaconda.com/products/individual 3. 시작메뉴에서 Anaconda Prompt를 관리자권한 실행을 해준다. 4. 텐서플로를 설치해준다. >pip install tensorflow ipython을 통해 import tensorflow as tf 를 실행하면 다음과 같은 문구가 나온다. W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found I tensorflow/stream_executor/cuda

[Python] 백준알고리즘 1000번 A+B (B5) [내부링크]

예제 입력 1을 보면 두 정수를 나란히 입력하여 A,B에 각각 할당시켜 A+B를 출력시켜야 한다. 파이썬에서 입력함수: input() 문자열을 구분하여 나누는 함수: split() 이렇게 입력해서 받은 값을 input().split()로 문자열 리스트를 받게 된다. 여기서 map()함수를 통해 int형태로 변환하게 되는데 변수가 여러개이면 리스트에서 각각 변수에 할당하게 된다. 따라서, 우리는 map(int, input().split())을 사용하면서 int형태로 변환을 시킨 리스트의 값을 a,b에 각각 할당하게 된다. 출력은 print() 함수를 통해 A+B를 출력시키면 된다. 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ a,b = map(int, input().split()) print(a+b) <실행결과> https://www.acmicpc.net/problem/1000 1000번: A+B 1000번 제출 맞힌 사람 숏코딩 재채점 결과 디버그 채점 현황 강의 A+B 다국

[Python] 백준알고리즘 1001번 A-B (B5) [내부링크]

예제 입력 1을 보면 두 정수를 나란히 입력하여 A,B에 각각 할당시켜 A-B를 출력시켜야 한다. 파이썬에서 입력함수: input() 문자열을 구분하여 나누는 함수: split() 이렇게 입력해서 받은 값을 input().split()로 문자열 리스트를 받게 된다. 여기서 map()함수를 통해 int형태로 변환하게 되는데 변수가 여러개이면 리스트에서 각각 변수에 할당하게 된다. 따라서, 우리는 map(int, input().split())을 사용하면서 int형태로 변환을 시킨 리스트의 값을 a,b에 각각 할당하게 된다. 출력은 print() 함수를 통해 A-B를 출력시키면 된다. 소스는 아래에 있으니 참고하면 된다. ↓ ↓ ↓ ↓ a,b = map(int,input().split()) print(a-b) <실행결과> https://www.acmicpc.net/problem/1001 1001번: A-B 1001번 제출 맞힌 사람 숏코딩 재채점 결과 디버그 채점 현황 강의 A-B 시간