728x90

스파르타 이노캠/워밍업 10

2023.06.02 금 워밍업 10일차

학습목표 SQL강의 수강 알고리즘 문제풀이 학습 스케쥴 3:00 ~ 4:00 PM - 강의 수강 준비 4:00 ~ 5:00 PM - 본과정 관련 질의응답 모임 참석 5:00 ~ 6:00 PM - 알고리즘 7:00 ~ 9:00 PM - SQL 강의 수강 평범한 배낭 같은 구조로 풀더라도 자료형을 어떻게 활용하느냐에 따라 메모리와 시간을 더 효율적으로 쓸 수 있다는 것을 알게 되었다. 도움을 얻은 블로그 글이 너무 잘 정리되어 있어서 참고하였다. https://st-lab.tistory.com/141 [백준] 12865번 : 평범한 배낭 - JAVA [자바] www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 ..

2023.06.01 목 워밍업 9일차

학습목표 웹개발 종합반 학습 스케쥴 3:00 ~ 6:00 PM - 웹 개발 종합반 강의 수강 7:00 ~ 9:00 PM - 웹 개발 종합반 강의 수강 코드를 작성하다보니 큰 문제보다는 변수명이나 구문에 오탈자가 나서 에러가 나는 상황이 생각보다 많았다. 강의에서는 짧은 변수명이나 구문들도 웬만하면 복사 붙여넣기를 하는데, 오탈자를 최소화하기 위한 좋은 습관인 것 같다. 강의를 들으면서 직접 타이핑을 했는데, 아무리 신경을 쓴다고 해도 변수명 입력 시 temp를 tmep로 적는다던지, 한 글자가 다른 문자로 잘못 타이핑 되는 등 실수가 몇 번 있었다. 그렇게 잘못 타이핑 된 채로 코드를 한참 작성하다가 완성 후 돌려보니 에러가 났는데, 간단한 코드라는 생각에 코드를 중간중간 체크하지 않고 한 번에 전체를 ..

2023.05.31 수 워밍업 8일차

학습목표 알고리즘 페어 프로그래밍 문제 8일차 학습 스케쥴 3:00 ~ 3:45 PM - 알고리즘 페어 프로그래밍 7일차 학습 공유 3:45 ~ 4:00 PM - 담당매니저님 개인 면담 4:00 ~ 6:00 PM - 알고리즘 페어 프로그래밍 학습 7:00 ~ 9:00 PM - 토의 및 마무리 다리 놓기 이항 계수의 성질을 활용해서 구현하는 문제. 처음엔 다리가 교차하는 경우를 제외하기 위해 별도의 식을 작성하려고 시도했지만, 정보를 찾다보니 순서를 구분하지 않는다는 조합의 성질 자체로도 이미 예외들을 전부 처리할 수 있는 상황이었다. 이후 이항계수 구하는 공식 중, 이미 구해진 값일 경우 그대로 return하는 구문을 빼먹고 재귀문만 작성했더니 시간초과가 났다. 이미 찾아진 값을 다시 불러올 때의 효율을..

2023.05.30 화 워밍업 7일차

학습목표 알고리즘 페어 프로그래밍 문제 7일차 학습 스케쥴 3:00 ~ 3:30 PM - 알고리즘 페어 프로그래밍 6일차 학습 공유 3:30 ~ 6:00 PM - 알고리즘 페어 프로그래밍 학습 7:00 ~ 9:00 PM - 토의 및 마무리 분해합 풀이방법은 생각보다 금방 떠올랐는데, 실제로 완성시키기까지는 시간이 꽤 걸렸다. 처음에는 각 자릿수의 값을 전부 더하는 방법이 떠오르지 않아서 StringTokernizer를 for문안에 반복시켜서 nextToken()으로 각각 꺼내서 전부 더하려했는데, 반복문에서 숫자가 올라갈때마다 String형태로 변환도 해야 되고 구현하려니 이래저래 복잡했다. 그러다가 이전 다른 알고리즘 문제에서 썼었던 해당 숫자를 10으로 나눈 나머지를 별도의 변수에 더해서 저장해두고,..

2023.05.29 월 워밍업 6일차

학습목표 알고리즘 페어 프로그래밍 문제 6일차 학습 스케쥴 3:00 ~ 3:30 PM - 알고리즘 페어 프로그래밍 5일차 학습 공유 3:30 ~ 6:00 PM - 알고리즘 페어 프로그래밍 학습 7:00 ~ 9:00 PM - 토의 및 마무리 최소공배수 문제 접근 방식자체는 어렵지 않았지만, 최대공약수를 구하는 과정에 유클리드 호제법을 사용하는 게 익숙치 않아서 for문으로 단순 반복하느라 시간초과가 났음. public static int gcd(int a, int b) { while (b != 0) { int r = a % b; a = b; b = r; } return a; } 유클리드 호제법이나 에라토스테네스의 체와 같이 효율적인 공식들은 필요 시에 바로바로 적용할 수 있어야 할 것 같다. 구문 전체를 ..

2023.05.26 금 워밍업 5일차

학습목표 알고리즘 페어 프로그래밍 문제 5일차 학습 스케쥴 3:00 ~ 4:00 PM - TIL 작성 강의 청강 4:00 ~ 4:20 PM - 알고리즘 페어 프로그래밍 4일차 학습 공유 4:20 ~ 6:00 PM - 알고리즘 페어 프로그래밍 학습 7:00 ~ 9:00 PM - 토의 및 마무리 알고리즘 5일차 동전0 문제 코드 작성 자체는 크게 어렵지 않은 문제인 듯. 필요한 동전 개수 구하는 반복문 작성할 때 while (k > 0) { if (coin [n - 1] 0) { total += k / coin [ n - 1 ]; k = k % coin [ n - 1 ]; n--; } 몫과 나머지를 이용해서 반복을 조금이나마 줄일 수 있는 코드로 변경 간단한 문제여서 큰 차이는 없을 수 있지만, 반복을 조금..

2023.05.25 목 워밍업 4일차

학습목표 알고리즘 페어 프로그래밍 문제 4일차 학습 스케쥴 3:00 ~ 4:00 PM - 알고리즘 페어 프로그래밍 3일차 학습 공유 4:00 ~ 6:00 PM - 알고리즘 페어 프로그래밍 학습 7:00 ~ 9:00 PM - 토의 및 마무리 Queue의 LinkedList와 ArrayList 데이터를 저장하는 방식이 다름. LinkedList - 노드로 연결된 구조로 데이터를 저장. 각 노드는 데이터와 다음 노드에 대한 포인터를 가지고 있음. ArrayList - 배열로 데이터를 저장. 배열은 연속적인 메모리 공간에 데이터를 저장한다. LinkedList는 ArrayList에 비해 삽입과 삭제가 빠르다. LinkedList는 노드의 연결만 변경하면 되지만, ArrayList는 데이터 변경 시 전체를 이동해..

2023.05.24 수 워밍업 3일차

학습목표 알고리즘 페어 프로그래밍 문제 3일차 학습 스케쥴 3:00 ~ 4:00 PM - 알고리즘 페어 프로그래밍 2일차 학습 공유 4:00 ~ 6:00 PM - 알고리즘 페어 프로그래밍 학습 7:00 ~ 9:00 PM - 토의 및 마무리 출력 문자열 처리 System.out.println(); 기능은 상황에 따라 다르긴 하지만 실무 수준에서는 부담이 높아질 수 있으므로 되도록 지양. StringBuilder StringBuffer, BufferWriter 사용 익숙해지도록 하기 StringBuilder와 BufferWriter 차이 StringBuilder는 내부적으로 문자열을 동적으로 생성하는 반면, BufferedWriter는 버퍼를 사용하여 문자열 처리. StringBuilder는 Buffered..

2023.05.23 화 워밍업 2일차

학습목표 알고리즘 페어 프로그래밍 문제 1일차 알고리즘 페어 프로그래밍 문제 2일차 학습 스케쥴 3:00 ~ 3:30 PM - 알고리즘 페어 프로그래밍 1일차 학습 공유 3:30 ~ 6:00 PM - 알고리즘 페어 프로그래밍 학습 7:00 ~ 9:00 PM - 토의 및 마무리 베르트랑 공준 n보다 크고, 2n보다 작거나 같은 소수는 최소 한 개 이상 존재함 -에라토스테네스의 체를 이용하여 소수를 판별한 후, 범위 내 소수의 갯수 카운팅 boolean 배열 2n+1길이로 생성. 반복문 사용해서 기본값 false에서 소수가 아닌 값들을 true로 지움. 조건 범위 내에 false로 남아있는 개수 count++; 에라토스테네스의 체 boolean[] prime = new boolean[2*n+1]; // 소수..

2023.05.22 월 워밍업 1일차

학습목표 알고리즘 페어 프로그래밍 문제 1일차 학습 스케쥴 3:00 ~ 4:00 PM - 워밍업 발제 참여 4:00 ~ 6:00 PM - 알고리즘 페어 프로그래밍 학습 7:00 ~ 9:00 PM - 토의 및 마무리 작성 시 main함수 입력을 받는 부분에서 Scanner와 BufferedReader의 차이 BufferedReader의 속도가 훨씬 빠르며, 데이터 양이 늘어날수록 차이가 심해짐 -BufferedReader는 입력을 String형식 그대로 읽기 때문에 정규식을 따로 검사하지 않으며, 여러 입력들을 저장했다가 한 번에 전송하기 때문에 속도가 월등히 빠르다. Scanner java.util.Scanner; 작성이 간편하고, 지원하는 메소드가 많음 BufferedReader java.io.*; 작..

728x90