2024 회고록
·
여러가지/일기
1. 서문올해를 한 문장으로 요약하자면, "2024년은 도전과 성장, 그리고 새로운 출발의 해였다."회고록을 작성하는 이유는 지난 한 해를 정리하며 앞으로 나아갈 방향을 더 명확히 하기 위해서다. 내 감정, 배움, 관계를 돌아보며 나의 성장을 기록하고 싶다.2. 성과와 주요 사건개인의 성과올해 가장 기억에 남는 성과는 다음과 같다.새로운 회사에 합류하여 프로젝트에 성공적으로 투입되었다.길었던 취업 준비 과정을 마치며 스스로의 한계를 극복했다.운동을 꾸준히 실천하며 건강한 삶의 패턴을 유지했다.주요 사건2024년은 다사다난한 사건들로 가득했다. 다음은 월별 주요 사건이다.2월: 구로에서 역삼으로 이사.3월: 회사의 권고사직으로 인해 큰 변화를 맞이함.4월: 항해99 취업 리부트 교육 시작.5월: 실업급여 ..
[LeethCode] 160번 Intersection of Two Linked Lists
·
여러가지/알고리즘 & 자료구조
Intersection of Two Linked Lists문제 설명- 두 개의 단방향 연결 리스트 headA와 headB가 주어집니다.- 두 리스트가 어떤 위치에서든 교차할 수 있습니다. 즉, 특정 노드 이후부터 두 리스트가 동일한 노드들을 공유하게 될 수 있습니다.- 이 문제에서 교차점이란 두 리스트가 연결되어 동일한 노드들이 뒤따르는 시작 지점을 의미합니다.- 교차점이 없는 경우 null을 반환합니다. 예시1. 예제11) 입력 : headA = [4,1,8,4,5], headB = [5, 6, 1, 8, 4, 5]2) 출력: 교차 노드 값이 82. 예제21) 입력: headA = [2,6,4], headB = [1,5]2) 출력: null (교차 없음)해결방법투 포인터를 사용합니다. 1. 포인터 설정..
[프로그래머스] 문자열 내마음대로 정렬하기
·
여러가지/알고리즘 & 자료구조
문자열 내 마음대로 정렬하기 (Java)문제 설명주어진 문자열 리스트 strings와 정수 n을 기준으로 각 문자열의 n번째 인덱스에 위치한 문자를 기준으로 오름차순 정렬하는 문제입니다. 만약 n번째 문자가 동일한 문자열이 여럿 있을 경우, 그 문자열들은 사전순으로 정렬합니다.문제 조건strings는 길이 1 이상, 50 이하의 배열입니다.strings의 각 원소는 소문자 알파벳으로 이루어져 있습니다.strings의 각 문자열은 길이 1 이상, 100 이하입니다.모든 strings의 원소의 길이는 n보다 큽니다.입출력 예시예시 1입력: strings = ["sun", "bed", "car"], n = 1출력: ["car", "bed", "sun"]설명: 각 문자열의 1번째 인덱스 문자를 기준으로 보면 "..
[프로그래머스] 푸드 파이트 대회
·
여러가지/알고리즘 & 자료구조
푸드 파이트 대회 문제 해결하기문제 설명푸드 파이트 대회는 수웅이가 매달 열리는 음식 먹기 대회입니다. 선수들은 1대 1로 대결하며, 각 대결마다 주어지는 음식의 종류와 양이 다릅니다. 선수들은 주어진 음식을 일렬로 배치한 후, 한 선수는 가장 왼쪽에서부터, 다른 선수는 가장 오른쪽에서부터 음식을 먹습니다. 중앙에는 물이 있으며, 물을 먼저 마시는 선수가 승리합니다.이 대회의 공정성을 위해, 두 선수는 음식의 종류와 양이 동일해야 하며, 음식을 먹는 순서도 같아야 합니다. 따라서 수웅이는 음식을 적절하게 준비해야 합니다. 여기서, 수웅이가 준비한 음식의 양을 기반으로 대회에 적합한 음식을 배치하는 방법을 찾는 것이 문제의 핵심입니다.예시예를 들어, 3가지 음식을 준비했다고 가정해 봅시다:1번 음식: 3개..
[프로그래머스] k번째수
·
여러가지/알고리즘 & 자료구조
K번째 수 찾기 알고리즘문제 설명배열의 특정 구간을 자르고, 그 구간을 정렬한 후, 정렬된 배열의 K번째 숫자를 찾는 문제입니다. 이를 통해 주어진 조건에 맞는 수를 구하는 과정을 연습할 수 있습니다. 예를 들어, 주어진 배열이 [1, 5, 2, 6, 3, 7, 4]이고, 명령어가 [[2, 5, 3], [4, 4, 1], [1, 7, 3]]인 경우를 살펴보겠습니다.첫 번째 명령어: [2, 5, 3] 배열의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.이 배열을 정렬하면 [2, 3, 5, 6]이 됩니다.3번째 숫자는 5입니다.두 번째 명령어: [4, 4, 1]배열의 4번째부터 4번째까지 자르면 [6]입니다.정렬 후 1번째 숫자는 6입니다.세 번째 명령어: [1, 7, 3]배열의 1번째부터 7번..
[프로그래머스] 숫자 문자열과 영단어
·
여러가지/알고리즘 & 자료구조
숫자 문자열과 영단어문제 설명네오와 프로도는 재미있는 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때, 일부 자릿수를 영단어로 바꾼 카드를 건네줍니다. 프로도는 이 영단어를 기반으로 원래 숫자를 찾는 게임을 하게 됩니다.예를 들어, 다음과 같은 변환이 이루어질 수 있습니다:1478 → "one4seveneight"234567 → "23four5six7"10203 → "1zerotwozero3"이와 같이 숫자의 일부 자릿수가 영단어로 바뀌거나, 바뀌지 않고 그대로인 문자열 s가 주어졌을 때, 이 문자열이 의미하는 원래 숫자를 반환하는 함수를 작성해야 합니다.영단어와 숫자의 매핑아래는 숫자와 영단어 간의 매핑 테이블입니다.숫자영단어0zero1one2two3three4four5five6six7se..
[프로그래머스] 가장 가까운 같은 글자
·
여러가지/알고리즘 & 자료구조
가장 가까운 같은 글자 문제 풀이문제 설명문자열 s가 주어졌을 때, 각 위치마다 자신보다 앞에 나온 동일한 글자가 있는지 확인하고, 가장 가까운 동일한 글자의 거리를 계산하는 문제입니다. 만약 같은 글자가 없으면 -1로 표시하고, 가장 가까운 동일한 글자가 있으면 그 거리를 반환합니다.예시예를 들어, 문자열 s = "banana"가 주어졌을 때, 각 문자는 다음과 같이 처리됩니다:b: 처음 등장했으므로 -1.a: 처음 등장했으므로 -1.n: 처음 등장했으므로 -1.a: 앞에서 두 번째 인덱스에 같은 글자 'a'가 있으므로 2.n: 앞에서 두 번째 인덱스에 같은 글자 'n'이 있으므로 2.a: 앞에서 두 번째, 네 번째 인덱스에 'a'가 있지만, 가까운 곳은 두 번째 앞이므로 2.결과는 [-1, -1, -..
[프로그래머스] 시저암호
·
여러가지/알고리즘 & 자료구조
시저 암호: 파이썬과 자바로 구현해보는 간단한 암호화 방식시저 암호는 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식입니다. 예를 들어, "AB"는 1만큼 밀면 "BC"가 되고, "z"는 1만큼 밀면 "a"로 변환됩니다. 시저 암호는 알파벳이 순환하는 구조이기 때문에 "Z"를 넘어서면 다시 "A"로 돌아옵니다.이 글에서는 파이썬(Python)과 자바(Java) 두 가지 언어로 시저 암호를 구현하고, 각각의 코드와 시간, 공간 복잡도를 분석해 보겠습니다.문제 정의주어진 문자열 s에서 각 알파벳을 n만큼 밀어서 암호화된 문자열을 반환하는 함수를 작성합니다.제한 사항공백은 밀어도 그대로 유지됩니다.문자열 s는 알파벳 대소문자와 공백으로만 이루어져 있습니다.s의 길이는 최대 8000 이하..