배열의 인덱스와 정렬을 활용하는 문제. python의 리스트를 활용하는 기본적인 문제였지만, map과 lambda 함수를 이용한 풀이를 보고 두 함수의 사용법을 새로 익힐 수 있었다.
비트 연산을 할 수 있는지 평가하는 문제. 두 개의 리스트를 2진수로 변환하여 OR 연산을 하고, 각 원소를 특정 문자로 변환하는 문제였다.
문자열 처리를 묻는 문제. 주어진 조건에 따라 문자열을 분리하고 계산하는 것이 중요하다. 숫자와 문자를 분리하는 것이 중요한데 숫자 처리에서 유일하게 두 자릿수인 10의 엣지 케이스를 조심해야 한다.
주어진 요건대로 LRU 알고리즘을 구현하는 문제. 입력 형식에서 cacheSize가 0인 예외 케이스를 처리하는 것이 중요하다. 입력 형식의 제한 사항을 꼼꼼히 보고 예외 케이스를 생각하는 능력을 길러야겠다.
주어진 요건대로 문자열을 처리하고, 다중 집합의 교집합과 합집합을 구현하는 문제. 위 풀이에서 주의할 점은, 문제의 조건이 다중 집합이기 때문에 set 함수를 이용해서 풀이하면 안 되는 것이다.
네이버 2021 상반기 기출 문제. 문제의 요건대로 구현하면 되는 문제였다. 주어진대로 구현하면 되는 간단한 문제였지만 조금 더 pythonic하게 코드를 짜고 싶었다.
주어진 요건대로 인접한 블록 매트릭스를 제거하는 시뮬레이션 문제. 2차원 배열을 행/열을 바꾸어서 조작하기 쉽게 만들고, 사라진 블럭의 위치를 set함수의 합집합 연산을 이용하여 구하면 된다.
주어진 로직대로 구현하면 되는 구현 문제. 스택을 이용하여 괄호쌍을 확인하고 재귀함수를 적절히 사용하여 문자열을 반환하면 된다.
문자열 처리와 완전 탐색 문제. 아래의 작업을 수행하면 된다. 문자열 자르기, 부분 문자열 얻기, 문자열 비교하기, 문자열 길이 얻기.
조합을 이용하는 구현 문제. 주의할 점은 “ABC”와 “CBA”의 경우 다르게 카운트 되기 때문에, 정렬을 이용해서 중복 카운트 되지 않도록 만들어 주는 것이 필요하다.
해시 자료구조를 활용할 수 있는지 묻는 문제. {"신고 당한 유저": 신고한 유저 리스트}의 구조로 목록을 만들면 된다. 중복 신고를 카운트하면 안되기 때문에 report 리스트를 집합으로 처리하면 편한 문제였다.
특정 문자들을 치환하여 부분 문자열을 비교하는 문제. 글자 수가 다른 문자를 토큰화 하는 법에 대해 익힐 수 있었다.
진법 변환과 소수 판별을 요구하는 구현 문제. 소수 판별에서 n보다 작은 모든 소수를 구하는 것이 아니라 2부터 n의 루트 사이의 범위에서 소수를 구하여야 효율성 테스트를 통과할 수 있다.
문자열을 처리하여 푸는 구현 문제. 누적 주차 시간을 분 단위로 저장하고 기본 요금과 초과 요금을 나누어 계산한다. 출차 시간이 없는 케이스를 고려하여 값을 계산해야 한다.
요구사항대로 구현하면 되는 구현 문제. GIF 파일 등에서 실제로 쓰이는 LZW 알고리즘을 문자열과 배열을 다루어 구현한다.
반복문과 진법 변환을 이용해서 반복되는 규칙에 따른 문자열을 출력하는 문제.
문자열 자르기와 정렬을 이용한 문제. 정렬 기준을 세 가지로 나누어서 정렬해야 하고, 숫자의 경우 앞자리 수가 0인 경우는 0을 없애는 처리를 해주어야 한다.
BFS를 활용해서 최단거리를 구하는 문제. 최단거리를 구하는 문제에서 DFS/BFS 중 무엇을 사용하는 것이 적합한지 익힐 수 있었다.
DFS 또는 BFS를 이용하여 이어져 있는 노드들을 하나의 군집으로 묶은 뒤 묶여있는 총 군집 수를 구하는 문제
DFS를 이용하여 모든 지점을 순회하는 경로를 찾는 문제. 단, 알파벳 순서가 앞서는 경로로 만들어야 한다. 이번 문제는 모든 지점을 순회하는 완전 탐색이 필요했기 때문에 DFS를 선택해서 문제를 풀었다.