🔍 오늘 배운 것📌 문제 개요윈도우 명령 프롬프트(cmd)에서 dir 명령어는 특정 패턴에 맞는 파일만 출력합니다.예를 들어 dir a?c.txt는 abc.txt, acc.txt 등을 찾습니다.주어진 N개의 파일 이름에서, 해당 결과가 나올 수 있는 패턴 문자열을
🔍 문제 요약여러 개의 문자열이 주어졌을 때, 각 문자열마다 포함된 문자들을 다음 네 가지로 분류해서 개수를 출력하는 문제.소문자 (a~z)대문자 (A~Z)숫자 (0~9)공백 (space)✨ 핵심 아이디어📌 문자열 순회 + 문자 분류문자열을 한 글자씩 순회하면서 C
스택(Stack)만 사용해서 큐(Queue)의 동작을 구현하는 문제.FIFO(First-In-First-Out) 구조의 큐를 만들어야 하며, 다음 메서드를 구현해야 함:push(x): 큐 뒤에 요소 x 삽입pop(): 큐 앞에서 요소 제거 후 반환peek(): 큐 앞에
해시맵(HashMap)을 내장 라이브러리 없이 직접 구현하는 문제이다.기본적으로 put, get, remove의 기능을 지원하는 HashMap 클래스를 만드는 것이 목표다.MyHashMap(): 해시맵을 초기화한다.void put(int key, int value):
영어 대문자와 소문자로 이루어진 문자열이 주어졌을 때대문자는 소문자로소문자는 대문자로바꾸어 출력하는 프로그램을 작성하는 문제이다.영어 대문자와 소문자로 이루어진 단어길이: 최대 100대문자는 소문자로소문자는 대문자로 변환한 문자열문자열의 각 문자를 하나씩 검사하면서대문
두 단어가 서로 애너그램 관계라는 것은문자의 순서를 바꾸면 같은 단어가 될 수 있는 경우를 의미한다.예시문자 순서를 바꾸면 서로 같은 단어가 된다.하지만 어떤 단어들은 애너그램이 아니더라도일부 문자를 제거하면 애너그램이 될 수 있다.예시여기서ared와 read는 애너그
세준이는 영어로 이루어진 문서에서 특정 단어가 몇 번 등장하는지 찾는 프로그램을 만들려고 한다.하지만 이 문제에서는 다음 조건이 있다.겹치는 경우는 세지 않는다.예를 들어가능한 위치는 다음과 같다.하지만 문제 조건에 따라 겹치는 경우는 동시에 세지 못한다.그래서 가능한
가로 길이가 w, 세로 길이가 h인 직사각형 격자 안에서 개미 한 마리가 이동한다.처음 위치는 (p, q)이고, 개미는 매 시간마다 오른쪽 위 45도 방향으로 한 칸씩 이동한다.이동하다가 경계에 부딪히면 반사되어 같은 속력으로 방향을 바꿔 계속 이동한다.주어진 시간 t
영식이는 직사각형 모양의 성을 가지고 있다.성의 각 칸에는 경비원이 있거나(X) 없을 수 있다(.).영식이는 다음 조건을 만족하도록 성을 지키고 싶다.현재 성의 상태가 주어졌을 때추가해야 하는 경비원의 최소 개수를 구하는 문제이다.첫째 줄N : 성의 세로 크기M : 성
초등학교 선생님 강산이는 새로 반에 배정받은 아이들을 키 순서대로 줄 세우기 하려고 한다.하지만 처음에는 아이들이 자신의 정확한 위치를 알지 못하기 때문에 다음 방법으로 줄을 세운다.첫 번째 학생을 줄 맨 앞에 세운다.이후 학생들은 줄의 맨 뒤에 먼저 선다.자신의 앞에
서로 다른 양의 정수 n개로 이루어진 수열이 주어진다.이때 두 수 ai, aj를 더해서 x가 되는 쌍의 개수를 구하는 문제이다.조건은 다음과 같다.즉, 같은 원소를 두 번 쓰면 안 되고서로 다른 두 위치의 원소를 골라 합이 x가 되는 경우의 수를 구해야 한다.첫째 줄둘
삼각수는 다음과 같이 정의된다.예를 들면문제에서는 어떤 자연수 K가정확히 3개의 삼각수의 합으로 표현될 수 있는지 판단해야 한다.단,같은 삼각수를 여러 번 사용해도 된다.3개의 삼각수가 서로 다를 필요는 없다.표현 가능하면 1, 아니면 0을 출력한다.첫째 줄에 테스트케
10진법 정수 N이 주어졌을 때, 이를 B진법으로 변환하여 출력하는 문제이다.단, 10 이상의 값은 다음과 같이 알파벳 대문자를 사용한다.첫째 줄에 두 정수가 주어진다.조건10진법 정수 N을 B진법으로 변환한 값을 출력한다.진법 변환의 기본 원리는 다음과 같다.예를 들
어떤 수를 왼쪽에서 읽어도, 오른쪽에서 읽어도 같다면이를 회문 수라고 한다.예를 들어은 회문 수이다.또한 어떤 수는 다른 진법으로 표현했을 때 회문이 될 수도 있다.예이 경우도 회문이다.주어진 정수 N이범위의 어떤 진법으로 표현했을 때회문이 되는 경우가 있는지 판단한다
N×N 크기의 보드에 서로 다른 색의 사탕이 놓여 있다.상근이는 다음과 같은 행동을 한다.서로 인접한 두 칸을 선택두 칸의 사탕을 서로 교환같은 색으로 이루어진 가장 긴 연속 부분(행 또는 열)을 선택그 길이를 구한다이때, 한 번의 교환으로 만들 수 있는가장 긴 연속
ACM 호텔은 H층, 각 층마다 W개의 방이 있는 구조이다.손님은 도착 순서대로 방을 배정받으며, 다음 기준을 따른다.즉, 방 배정 순서는 다음과 같다.즉 층을 먼저 채우고, 그 다음 호수를 증가시키는 방식이다.첫째 줄테스트 케이스 개수각 테스트 케이스H : 층 수W
NxN 격자 위에서 로봇 팔이 이동하며 선을 그린다.초기 위치는 왼쪽 위 (0,0)이다.이동 명령은 다음과 같다.조건격자 밖으로 나가는 명령은 무시이동한 경로를 표시각 칸은 다음 기준으로 출력한다.이 문제의 핵심은 다음이다.즉,가 아니라를 따로 관리해야 한다.나는 한
행운의 바퀴에는 알파벳 대문자가 적혀 있고, 바퀴는 시계 방향으로만 회전한다.각 회전마다가 주어진다.이 정보를 바탕으로 바퀴의 상태를 복원하는 문제이다.첫째 줄N : 바퀴 칸 개수K : 회전 횟수다음 K줄S : 이동 횟수문자 : 해당 위치 문자가능한 경우: 바퀴 상태
전대프연에서는 스태프에게 수고비를 공정하게 지급하기 위해ALPS 방식을 사용한다.과정은 다음과 같다.전체 참가자의 5% 미만 득표 스태프 제거남은 스태프마다총 14개의 점수를 만든다전체 점수 중 상위 14개를 뽑는다해당 점수를 가진 스태프에게 칩 1개씩 지급첫째 줄전체
알파벳 소문자로 이루어진 단어 N개가 주어진다.이 단어들을 다음 기준에 따라 정렬해야 한다.길이가 짧은 것부터길이가 같으면 사전 순으로중복된 단어는 하나만 남긴다첫째 줄에 단어의 개수 N이 주어진다.다음 줄부터 N개의 단어가 한 줄에 하나씩 주어진다.조건조건에 맞게 정
온라인 저지 회원들의 정보가 가입한 순서대로 주어진다.각 회원 정보는 다음과 같다.나이이름이 회원들을 다음 기준으로 정렬해야 한다.나이가 증가하는 순나이가 같으면 먼저 가입한 사람 순즉, 단순히 나이만 정렬하는 것이 아니라같은 나이일 때 입력 순서를 유지해야 하는 문제
회사 출입 기록이 주어졌을 때,현재 회사에 남아있는 사람들의 이름을 출력하는 문제이다.각 기록은 다음과 같이 주어진다.마지막 상태 기준으로 회사에 남아 있는 사람들만 출력하면 된다.첫째 줄출입 기록 개수다음 N줄조건현재 회사에 있는 사람의 이름을으로 출력한다.이 문제의
오늘 하루 동안 팔린 책의 제목이 주어졌을 때,가장 많이 팔린 책의 제목을 출력하는 문제이다.단, 다음 조건을 만족해야 한다.첫째 줄책의 개수조건다음 줄부터 N개의 책 제목가장 많이 팔린 책의 제목 출력이 문제의 핵심은 다음 두 가지이다.즉,을 활용하는 문제이다.나는
수직선 위에 N개의 좌표가 주어질 때,각 좌표를 좌표 압축한 값을 구하는 문제이다.좌표 압축의 정의는 다음과 같다.즉, 어떤 값보다 작은 값들의 개수를 구하면 된다.첫째 줄좌표 개수둘째 줄조건좌표 압축 결과이 문제의 핵심은 다음이다.즉,문제이다.나는 배열을 복사한 뒤
메시지를 이루는 숫자들이 주어졌을 때, 이를 빈도 순으로 정렬하는 문제이다.정렬 기준은 다음과 같다.더 많이 등장한 숫자가 앞에 온다.등장 횟수가 같다면 먼저 등장한 숫자가 앞에 온다.즉, 단순한 숫자 정렬이 아니라를 함께 고려해야 한다.첫째 줄N : 메시지 길이C :
하나의 회의실이 있을 때,서로 겹치지 않게 회의를 배정하려고 한다.각 회의는이 주어지며,다음 조건을 만족해야 한다.목표는를 구하는 것이다.첫째 줄회의 개수다음 줄부터조건최대 회의 개수 출력이 문제의 핵심은 다음이다.즉,문제이다.이번 문제는이다.즉,이 문제는 대표적인 그
N개의 수가 주어질 때,여러 개의 구간 \[i, j]에 대해을 구하는 문제이다.첫째 줄N : 수의 개수M : 구간 합 계산 횟수둘째 줄셋째 줄부터 M개의 줄조건각 구간에 대해 합을 출력한다.이 문제의 핵심은 다음이다.매번 구간 합을 직접 계산하면이 걸린다.M번 반복하면
길이가 N인 수열이 주어지고,Q개의 구간 쿼리가 주어진다.각 쿼리는 다음과 같다.그리고 모든 쿼리 결과를 다시 XOR한 값을 출력해야 한다.첫째 줄둘째 줄다음 Q줄조건모든 쿼리 결과를 XOR한 값 출력이 문제의 핵심은 다음이다.누적 XOR 배열을 만들면이 된다.이 공식
N×N 크기의 2차원 배열이 주어질 때,다음 쿼리를 처리하는 문제이다.즉, 2차원 영역의 합을 빠르게 구해야 한다.첫째 줄N : 배열 크기M : 쿼리 개수다음 N줄다음 M줄조건각 쿼리마다 구간 합 출력이 문제의 핵심은 다음이다.내 코드처럼 매번 직접 계산하면최대→ 시간
연병장은 1번부터 N번까지 일렬로 이루어진 칸이다.각 칸에는 높이가 존재한다.조교들은 다음과 같은 명령을 내린다.k ≥ 0 → 흙을 덮는다k < 0 → 흙을 파낸다모든 명령을 수행한 뒤각 칸의 최종 높이를 구하는 문제이다.첫째 줄둘째 줄다음 M줄조건최종 높이를 출
NxM 격자에서 생명(\*)과 빈칸(.)이 존재한다.각 칸은 주변의 영향을 받아 다음 상태로 변한다.주변은 다음과 같이 정의된다.각 칸은 주변 생명 개수에 따라 상태가 변한다.첫째 줄둘째 줄다음 N줄T번 시뮬레이션 후 최종 상태 출력이 문제의 핵심은 다음이다.단순 구현
정수 배열 A가 주어질 때,여러 개의 값 X에 대해를 판단하는 문제이다.첫째 줄배열 크기둘째 줄셋째 줄넷째 줄조건각 값에 대해이 문제의 핵심은 다음이다.이중 반복 → O(N×M) → 시간초과정렬 + 이분탐색 → O(N log N + M log N)HashSet → O(
문자열 집합 S가 주어지고,여러 개의 문자열이 입력될 때를 구하는 문제이다.첫째 줄N : 집합 S의 크기M : 검사할 문자열 개수다음 N줄다음 M줄조건집합 S에 포함된 문자열 개수 출력이 문제의 핵심은 다음이다.이중 반복 → O(N×M) → 비효율정렬 + 이분탐색Has