전체 글

안녕하세요 💻
문제 앞에서 뒤로 보나, 뒤에서 앞으로 보나 같은 수열을 팰린드롬이라고 한다. 예를 들어 {1}, {1, 2, 1}, {1, 2, 2, 1}과 같은 수열은 팰린드롬이지만, {1, 2, 3}, {1, 2, 3, 2} 등은 팰린드롬이 아니다. 한 수열이 주어졌을 때, 이 수열에 최소 개수의 수를 끼워 넣어 팰린드롬을 만들려고 한다. 최소 몇 개의 수를 끼워 넣으면 되는지를 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 수열의 길이 N(1≤N≤5,000)이 주어진다. 다음 줄에는 N개의 수열을 이루는 수들이 주어진다. 각 수들은 int 범위이다. 출력 첫째 줄에 끼워 넣을 수들의 최소 개수를 출력한다. 🔎문제 해석 DP를 기반으로 해서 다른 알고리즘을 병행하면서 해결했다. DP를 통해서 쓸데 없는 연산을 하..
문제 https://www.acmicpc.net/problem/1520 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 🔎문제 설명 문제만 보고 이게 DP문제인가? 싶었다. 그냥 무작정 BFS를 사용해서 풀었다. 그랬더니 시간초과가 났다. 이동하는 조건만 맞으면 큐에 넣어줬고, 도착지점에 도착한다면 그게 적절한 이동이라고 생각해서, 결괏값을 계속 더해줘서 함수를 탈출한다면 결과값을 출력해 줬지만 아마 배열 크기도 크고, 큐에 쓸데없는 없는 값이 많이 들어가서 그런 거 같다. 다른 사람들의 풀이를 보니 dfs..
문제 서기 2012년! 드디어 2년간 수많은 국민들을 기다리게 한 게임 ACM Craft (Association of Construction Manager Craft)가 발매되었다. 이 게임은 지금까지 나온 게임들과는 다르게 ACM크래프트는 다이내믹한 게임 진행을 위해 건물을 짓는 순서가 정해져 있지 않다. 즉, 첫 번째 게임과 두 번째 게임이 건물을 짓는 순서가 다를 수도 있다. 매 게임시작 시 건물을 짓는 순서가 주어진다. 또한 모든 건물은 각각 건설을 시작하여 완성이 될 때까지 Delay가 존재한다. 위의 예시를 보자. 이번 게임에서는 다음과 같이 건설 순서 규칙이 주어졌다. 1번 건물의 건설이 완료된다면 2번과 3번의 건설을 시작할 수 있다. (동시에 진행이 가능하다) 그리고 4번 건물을 짓기 위..
https://career.programmers.co.kr/competitions/3287 2023 Summer Coding - 스타트업 인턴 프로그램 주니어/예비 개발자를 위한 Summer CODING 🏖 22개 기업이 함께 참여하고 있습니다. #스타트업#개발인턴십#정직원 전환시 사이닝 보너스 50만원#코딩테스트 Summer Coding은 학생 개발자, 졸업 후 고민이 career.programmers.co.kr 가능한 많은 코딩 테스트를 응시하고 싶어서 신청한 프로그램입니다. 원서접수 이후에 코딩테스트를 봤습니다. 원서접수는 자소서를 쓰고, 원하는 직무에 해당하는 기업을 최대 5개까지 선택가능합니다. 다른 기업 채용공고에서 쓰던 자소서와는 다르게 비교적 프로그래머스 자기소개서는 굉장히 간단한 형식이었..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📕문제 풀이 무적권을 적절한 라운드에 사용해서 최대한 많은 라운드를 버텨야 한다. 따라서 무적권을 사용하는 라운드를 선정하는 방법이 중요하다! 📗초기 풀이 방식 초기 풀이 방식은 queue에 넣어서, 모든 경우의 수를 탐색했다. 하지만 N의 길이가 커서 시간초과가 났다. 초기 알고리즘은 이렇다. queue에 원소를 계속 넣어서, 만약 가용가능한 병사의 수가 현재 라운드의 적의 수보다 적으면..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔎문제 해석 출발점에서 레버를 당겨서 탈출점까지의 최소 경로를 구하는 문제입니다. BFS 알고리즘을 사용해서 쉽게 풀 수 있습니다. 문제는 굉장히 간단합니다..(저는 너무 복잡하게 생각해서 오래 걸렸습니다ㅜㅜ) 문제를 보면 출발정메서 레버로 있는 칸으로 이동하고, 레버를 당긴 후, 탈출점으로 이동하라고 나와 있습니다. 이 문제는 반드시 탈출을 하기 위해서는 레버를 당겨야 합니다. 만약 출발..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔎문제 해석 우선 문제를 읽고, DFS 혹은 백트래킹으로 풀어야겠다고 생각을 했습니다. 쭈욱 진행하다가, 만약 끝에 도달했을 때의 점수를 비교해서, 가장 큰 점수로 이기는 방법을 계속 찾아줬습니다. 문제에서는 만약 가장 큰 점수로 이기는 방법이 여러 가지라면, 특수한 조건을 부여했고, 그 조건도 그렇게 어려운 조건이 아닙니다. 문제에서 포인트는 이 문제를 DFS로 풀어야 한다는 것입니다. 우..
Network Layer 이번글에서는 IP protocol에 대해서 써볼까 합니다. 인터넷프로토콜(IP, Internet Protocol) 송신호스트와 수신 호스트가 패킷을 교환할 때 사용되며, 데이터 패킷을 목적지로 전달하는 역할을 수행합니다. IP protocol은 비연결성 프로토콜로, 데이터의 신뢰성을 보장하지 않습니다. 하지만 이러한 IP 프로토콜은 Transport 계층에 TCP, UDP와 함께 사용될 수 있어, 부족한 점을 보완할 수 있습니다. IP Datagram format 기본적으로 IP header는 패킷을 어디로 어떻게 보낼지에 대한 정보를 담고 있습니다. ver IP 프로토콜의 버전 정보 ex) IPv4, IPv6 헤더 길이 IP datagram 헤더의 길이를 나타낸다. 일반적으로 ..
이번 글은 Network Layer에 대해서 설명해 보겠습니다. 우선 Network Layer는 Transport Layer 아래에 위치합니다. Network layer의 핵심 기능 Forwarding data plane이 담당 패킷이 들어왔을 때, 보내주는 기능 Routing control plane이 담당. 들어온 패킷을 어디로 보낼지 판단하는 기능 판단하는 과정을 Routing table을 보고 판단함. 간단하게 두 기능을 여행에 비유해 설명해 보자면, forwarding은 여행을 하는데 고속도로를 통과하는 것처럼 그저 나아가는 작업입니다. routing은 여행에서 출발지에서 목적지까지의 경로를 계획하는 과정입니다. 자 그러면 이러한 기능들을 해주는 Data plane과 Control plane은 ..
재한
짜이한