전체 글

etc/bootcamp

SSAFY 추가 합격 후기 / 11기 / (단기간)준비 과정 / 전공자

해당 포스트의 내용은 '나는 이렇게 준비했다' 정도로 참고만 해주면 좋겠습니다. (솔직히 그리 큰 도움이 될것같지는 않지만 저도 여러 블로그를 참고하며 준비했기 떄문에 후에 지원하는 사람들에게 조금이라도 도움이 됐으면 합니다^^ 추합이지만..) 싸피에 왜 지원했나? 이것저것 열심히 해본것도 같고 여기저기 해서 10군데 넘게 이력서도 제출해봤는데 반정도는 서류탈락, 나머지는 코테탈락을 했다. 서류야 여기저기 넣어본다고 그렇게 열심히 쓴것같지는 않아서 이해하겠는데 코딩테스트에서 다 떨어진 부분에서 필자는 적잖은 충격을 받게 되었다.(하도 불합을 많이 받아서 익숙해짐..) 코딩테스트 공부도 안한건 아닌데 풀어도 왜 풀렸는지 잘 모르겠고, 안풀릴땐 아예 생각도 안나거나 대충 이거쓰면 풀릴것 같은데에서 생각이 멈..

코딩테스트/백준

[백준] 1244 스위치 켜고 끄기 (java)

1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 해설 평이한 수준의 시뮬레이션, 구현 문제였다. 남자랑 여자로 스위치 변경 타입을 나눠주고 각 메소드를 분리해서 만들어줬다. 이번에는 메소드를 분리해서 만들었지만 나머지 연산을 사용한다면 굳이 change 메소드까지 만들 필요는 없었다고 생각한다. 구현 문제이니만큼 직관적인 편이었지만 추후 더욱 어려운 구현(시뮬레이션) 문제를 풀기에 앞서서 풀어보기에는 괜찮은 문제라는 생각이 들었다. 메소드를 분리해서 만들면 코드가 길어질 경우에 중복되는 코드를 줄이기 쉽..

코딩테스트/백준

[백준] 12891 DNA 비밀번호 (java)

12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 해설 처음에는 나이브하게 모든 부분문자열로 잘라서 풀이해보려고 했지만 그렇게 하니까 시간초과가 났다. 그래서 생각해본 방식으로는 각 ACTG를 0, 1, 2, 3의 인덱스값을 표현하는 int값으로 바꿔준 다음에 그 int값을 arr 배열에 넣었다. 그리고 cur 배열에서 앞쪽 유전자(알파벳)에 해당하는 인덱스값을 낮춰주고, 뒤쪽 유전자(알파벳)에 해당하는 인덱스값을 높여주면서 한 계단씩 올라가면서 비교를 진행해서 통과하게 되었다. 예를 들어..

코딩테스트/백준

[백준] 15649 N과 M(1) (java)

15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 해설 간단하게 순열을 구현해보는 문제였다. 기본 배열인 arr에 1~N을 넣어준 다음에 순열을 통해 순서가 있게 선택을 하고 N만큼의 선택을 진행했다면, 해당 순열을 static StringBuilder sb에 넣어줌으로써 저장한 다음에 마지막에 한꺼번에 출력해줌으로써 출력시간을 최소화할 수 있도록 만들었다. 기본 순열을 구현하는 좋은 문제이므로 자주 들여다보면서 순열을 구현하는 감을 익히면 좋을 것 같다. 풀이 import java.io.BufferedRead..

코딩테스트/백준

[백준] 2023 신기한 소수 (java)

2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 해설 메모장에 써보면서 실험해본 결과, 맨 앞자리엔 2, 3, 5, 7이 올 수 있고, 그 이후에는 1, 2, 3, 5, 7이 올 수 있다는 사실을 알 수 있었다. 숫자 크기상 에라스토테네스의 체를 쓰기에는 어려움이 있었고, 간단하게 제곱수까지만 반복문을 통해 소수임을 판별할 수 있게 만들었다. check에는 문자열 s와 몇째자리 수까지 받았음을 나타내는 num을 파라미터로 받아서 소수임이 판별나면 check 메소드를 재귀로 돌렸고, num이 N과 같..

코딩테스트/백준

[백준] 2839 설탕 배달 (java)

2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 해설 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력해야한다. 초기값으로 dp[3]과 dp[5]를 1로 하고, dp[n-3]+1과 dp[n-5]+1의 최솟값을 잡는 dp로 풀었다. 만약 20000보다 큰게 나오면 딱 맞게 담을 수 없다는 의미이므로 -1을 반환한다. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr..

코딩테스트/백준

[백준] 2961 도영이가 만든 맛있는 음식(java)

2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net 해설 방문배열 boolean v[] 를 이용하여 방문체크를 하고, 해당 재료를 선택했을 때와 선택하지 않았을 경우의 신맛과 쓴맛의 차이를 생각해 보면서 차의 최댓값을 구할 수 있도록 하였다. 풀이(java) package com.ssafy.recursive; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import jav..

회고

2023년 회고록

2023년에는 많은 일을 했다고 생각했지만 생각대로 풀리지 않은 경우가 많았다. 한마디로 표현하자면 2023년은 실패라고 생각한다. 전반기(졸업 프로젝트) 이제 4학년이 되면서 취업에 대한 부담이 부쩍 늘어난 상황이었다. 포트폴리오? 이력서? 전혀 모르는 상황이었고, 내가 졸업할 수 있는지 없는지도 잘 몰랐다. 졸업을 위한 캡스톤 프로젝트를 친한 친구들과 빠르게 팀을 만들어 시작했다. 필자를 포함한 친구들은 모두 협업능력, 개발능력이 전혀 없는 상태였다.(그냥 학교과제, 시험만 본 전형적인 망한 케이스..) 이와 더불어 이제 어느 분야에 종사하여 개발할지에 대해 정해야 해당 언어를 집중적으로 공부할지 정할 수 있었기 때문에 여러 언어, 자격증, 분야 등에 대해 조사를 해봤고, 그 과정에서 백엔드(자바, ..

스프링/테스트

Test 코드 기초(1)

1. 왜 Test 코드를 작성하는가? 1) Test 코드를 작성하지 않고 결과를 검증하는 과정은 비용이 많이 든다. Test코드 사용 X (싱글 애플리케이션 (Monolithic Arichitecture)에서의 모습) 검증 코드 작성 애플리케이션 실행 PostMan 혹은 브라우저 Request 요청 log 혹은 print로 결과 검증 원하지 않는 결과 발생 시 애플리케이션 종료 다시 코드 작성 위와 같은 로테이션이 원하는 결과를 얻을 때까지 돌아가게 된다. 이처럼 간단한 애플리케이션이라도 실행하고 종료하는데 비용이 많이 들지만 Test 코드를 작성한다면 이야기가 달라진다. Test 코드를 사용 O Test 코드 작성 Test 코드 실행 결과 검증 Test 코드 수정 위와 같이 애플리케이션을 실행, 종료할..

컴퓨터 공학(Computer Science)/컴퓨터 구조

[컴퓨터구조] 반가산기, 전가산기, 클럭

기본적인 논리게이트는 알고 있다는 가정하에 간단하게 표만 보고 넘어가자. AND Gate - 둘 다 1이어야 1, 곱셈이라고 생각하면 편하다. OR Gate - 하나만 1이어도 1, 덧셈이라고 생각하면 편하다. NOT Gate - 0, 1 뒤집기 NAND Gate(Not AND) - AND Gate 다음에 NOT Gate를 통과시킨 것이다. NOR Gate(Not OR) - OR Gate 다음에 NOT Gate를 통과시킨 것이다. XOR Gate(Exclusive OR) - 두 입력의 값이 같으면 0, 다르면 1이다. XNOR Gate(Exclusive NOR) - XOR Gate다음에 NOT Gate를 통과시킨 것이다. Buffer Gate - NOT 게이트와는 반대되는 개념으로 사용되는 논리회로이다...

넉우리
넉우리의 성장노트