no image
[Algorithm] 배열 입력이 [1,2,3](대괄호)와 같을 때
최근에 본 코테에서 주어진 입력방식대로 입력을 받고 처리하는 방법을 몰라서 틀린 문제가 있다.나는 언제나 코테를 준비하며 콘솔 입력 형식만 고집하며 연습해왔어서, [1,2,3] 이런식으로 입력 받으면 어떻게 처리해야할지 몰랐었다(진짜 몰라서 리스트 쓰고 난리났었다ㅡㅡ..)알고리즘은 다 구현하고 출력까지도 모든 테스트 케이스와 동일했지만, 입력이 대괄호에 감싸져 입력되는 경우에 어떻게 처리 되는지 몰라서 해결방법을 찾고, 두번 다시는 같은 실수를 반복하지 않겠다고 다짐하고자 이 글을 작성한다.입력 배열에 대한 대괄호를 제거하기정규표현식을 활용한 문자 제거 + 스트림 활용을 활용하여 문제를 해결할 수 있었다.절차는 아래와 같다.0. 입력은 String type으로 받기1. replaceAll() 메서드를 통..
2024.12.28
no image
[잡담] 2024 회고
2024를 보내며2024년도는 좀 나에게 있어 크고 작은 이벤트들이 많이 있었던 것 같다.첫째로, 개발 공부의 어려움을 느낄 수 있었던 해였던 것 같다.나는 원래 학교 공부를 상당히 열심히 했다. 그리고 그 결과도 항상 좋았다. 근데 어느날 코드를 치려고 하니까, 한두줄도 적지 못하는 나를 보고 좀 큰 충격을 받았다.나는 학교만 열심히 다니면 좋은 직장을 가질 수 있다고 생각했고, 정말 치열하게 노력했다.하지만 사실 나는 대단한 착각을 하고 있었고, 곧바로 어떤 공부를 해야할지 알아보며 언어 공부부터 차근차근 시작했다.사실 처음부터 스프링을 건드려봤는데, 뭐 자바를 모르니 한개도 이해가 안갔다. 억지로 공부하는 것도 한계가 있었다. 그 이후 현재까지도 언어 공부를 하면서, 늘 모르는 부분에 대해서는 복습..
2024.12.28
no image
[Algorithm] 팰린드롬 수 - (백준 1259)
문제어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.입력입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.출력각 줄마다 주어진 수가 팰..
2024.12.26
no image
[Algorithm] 피보나치 수열 (반복문, DFS)
피보나치 수열을 구현하는데 두가지정도의 알고리즘이 대표적으로 존재한다.반복문 + 배열로 구현먼저, 대표적으로 배열 + 반복문으로 구현하는 방법은 아래와 같다.package Array;import java.util.*;public class Fibonacci { public static int[] fib(int n) { int[] arr = new int[n]; for (int i = 0; i 배열의 인덱스가 0이나 1일 때는 원소의 값을 1로 집어 넣는 복잡도가 O(1)이고, 인덱스가 0 또는 1이 아닐 때 원소값을 삽입하는 복잡도는 대략 O(n) 정도이다. 즉 배열과 반복문으로 풀면 복잡도는 O(n) 정도이다. DFS 로 구현기본적으로 DFS는 메서드를 재귀적으로 호출한다..
2024.12.25
no image
[Algorithm] 올바른 괄호 (Java) - Stack 보단 Deque
설명괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다.(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.입력첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다.출력첫 번째 줄에 YES, NO를 출력한다.예시 입력 1 (()(()))(()예시 출력 1NOStack 자료구조를 이용하는 문제는 맞지만, 현재 Stack 클래스는 사용하지 않는다고 배웠다.스택은 자바 1버전에서 사용하던 Vector 를 상속받은 클래스라는데.. 이제는 하위 버전 호환용으로만 존재할 뿐 사용하지 않기 때문에 Deque 로 풀었다.Deque는 스택의 push(), pop() 메서드와 Queue의 offer(), poll() 메서드 모두 ..
2024.12.24
no image
[SQLD] 55회 SQLD 합격 후기
참고로 저는 컴공(전공생)이지만 거의 문외한 입장에서 시험을 준비했습니다.전공생이지만, 저처럼 아는게 없는 전공생 분들을 위한 후기..일단 결과부터 말하자면 나는 이번 년도 마지막 SQLD 시험인 55회차에 응시하여 시험에 합격했다.점수는.. 처참하긴 하지만 뭐 100점이나 68점이나 60점이나 어차피 합격은 합격이셈! 참고로 이번에 공부해보니까 굳이 전공자 비전공자 구분을 해서 갈라치기 해야하나? 싶을 정도로 전공의 유무가 필요 없는 시험인 것 같다. 나는 백엔드 개발자를 준비하면서, SQL 및 데이터베이스 공부는 필연적인 공부였다. 그래서 어차피 언젠가는 해야할 공부니까, 하는 김에 자격증까지 취득하면 좋겠다고 생각했고, 이번 시험에 응시하여 합격을 하였다.  혹시나 내년에 SQLD 를 응시하실 분들..
2024.12.15
no image
[잡담] 20241205 - 뇌 빼고 적는 잡담
안녕하세요 오랜만입니다.뭔가 상당히 오랜만에 잡담글을 적어보는 것 같은데..늘상 시험기간만 되면 평소에는 적었던 취업에 대한 걱정과 함께 불안감이 엄습해와서 온몸이 무기력해지는 시기 인 것 같다.나는 시험기간이 아닐 때는 웹 공부를 하면서 지냈는데, 이번에는 좀 최악의 조건인게 중간고사 기간이 끝나자마자 SQLD 시험을 준비하고, 또 SQLD가 끝나자마자 2주도 안되어서 바로 기말고사 준비와 기말 프로젝트 2개를 준비해야했다.학교 공부라는게 참 양날의 검 같다.학교 공부를 정말 열심히 따라가야하는 것도 맞는데, 학교 시험 공부를 하다가 오면 그 짧은 사이에 웹 공부 감을 잃어버린다.심지어 잘 읽히던 코드도 분명 내가 작성하였지만 다시 읽어보면 무슨 의미인지 잘 모르겠는 경우가 많다. 더러워서 못하겠지만서..
2024.12.05
no image
[Network] 네트워크 보안
네트워크 보안의 개요보안은 크게 컴퓨터 보안과 네트워크 보안으로 구분할 수 있다.보안 위협전송 차단 : 제 3자가 송신측과 수신측 사이에 통신을 차단한다가로채기 : 제 3자가 송신측과 수신측 사이의 데이터를 중간에 가로챈다변조 제 3자가 중간에 데이터를 가로채서 일부 또는 전부를 변경하여 잘못된 데이터를 전송하는 경우위조제 3자가 메시지를 위조하여 송신측이 전송한 것 처럼 수신측으로 데이터를 전송한다 → 변조와 다른 점은 송신측이 데이터를 전달하지 않았는데도 전송한 것처럼 표현할 수 있다는 것이다네트워크 보안의 필요성네트워크 보안네트워크에 접속하여 불법적인 행위를 하지 못하도록 방화벽을 구축하여 네트워크 통신의 많은 부분을 제약하고 보안강도를 설정할 수 있다.네트워크 보안의 요구 사항비밀성 : 인증받은 ..
2024.12.04
no image
[Network] 헷갈리는 네트워크 용어 -프록시(Proxy)
공부를 하다보면, 항상 등장하는 단어라 그때마다 찾아보지만, 이게 계속 등장하는데도 까먹는 용어들이 있다.오늘의 주인공은 프록시(Proxy)이다.Proxy 란? 프록시는 대리, 중개자 를 의미하고, 네트워크에서는 클라이언트와 서버간의 요청과 응답을 대신 처리해주는 역할을 의미한다.이러한 프록시가 동작하는 방법은 다음과 같다 -> 사용자가 어떤 요청(웹사이트 접속이라고 가정) 을 하면 프록시가 그 요청을 받아 대신 서버에 전달하고, 서버로 부터 받은 응답 (Response)를 다시 사용자에게 반환하는 역할을 한다.Proxy Server 란?프록시 서버는 프록시 역할을 수행하는 서버를 지칭하며, 클라이언트와 실제 서버 사이에 위치하여 요청을 중계하는 서버를 의미한다프록시 서버의 기능은 다음과 같다1. 익명화..
2024.12.03