본문 바로가기

코딩테스트19

[파이썬] 백준 11870번 좌표 압축 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net [문제 이해] 받은 좌표 리스트를 오름차순으로 배열했을 때, 해당하는 리스트의 인덱스를 순서대로 출력하는 문제이다. 좌표 압축이라고 해서 문제 자체를 이해하기 힘들었는데 입력을 보고 위처럼 이해하고 푸니까 더 풀기 쉬웠던 것 같다. [문제 풀이] 1. 입력 받은 리스트를 오름차순으로 정렬하고 리스트의 원소에 해당하는 값을 오름차순 인덱스에 해당하.. 2024. 3. 20.
[파이썬] 백준 1181번 단어 정렬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net [문제 이해] 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래의 조건에 따라 정렬하는 프로그램을 작성하는 문제이다. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 단, 중복된 단어는 하나만 남기고 제거한다. [문제 풀이] 단어 리스트를 받았을 때, 조건대로 짧은 순으로 먼저 정렬하고, 만약 길이가 같으면 사전 순으로 정렬하는 문제라 어렵지 않게 풀 수 있었다. 그 전에 .. 2024. 3. 20.
[파이썬] 백준 11047번 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net [문제 이해] 입력 받은 동전 종류 중 일부를 적절히 사용해서 입력 받은 결과 값을 만들기 위해 필요한 최소 동전 개수를 구하는 문제이다. [문제 풀이] 내림차순 정렬을 통해 가지고 있는 동전 중 가장 높은 수부터 만들어야 하는 값과 비교한다. 가지고 있는 동전이 크다면 더 작은 동전과 비교해가며 동전의 개수를 센다. 이때 동전의 개.. 2024. 3. 14.
[코테 스터디] Week2 DFS & BFS 개념 정리 * 해당 포스팅은 아래 알고리즘 강의를 듣고 정리한 내용입니다. https://www.youtube.com/watch?v=7C9RgOcvkvo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=3 이번 주차 개요 탐색: 많은 양의 데이터 중 원하는 데이터를 찾는 과정 → 특정 조건에 맞는 데이터가 존재하는지, 존재한다면 어떤 위치에 존재하는지.. ex. DFS, BFS: ⭐ 매우 자주 등장하는 유형 ⭐ 스택 먼저 들어온 데이터가 나중에 나가는 형식 (선입후출): 먼저 입력되는 데이터가 나중에 출력 → 입구와 출구가 동일한 형태 ex. 박스 쌓기 → 다양한 알고리즘에서 사용되기 때문에 스택의 동작 방법과 사용 방법에 대해 꼭 숙지하기! 동작) 삽입(원소) + 삭제() sta.. 2024. 3. 14.
[파이썬] 프로그래머스 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 이해] 주어진 숫자들을 활용하여 덧셈 혹은 뺄셈 만을 사용하여 target에 해당하는 숫자가 결과 값으로 나오도록 계산할 수 있는 가짓 수를 세는 문제였다. 예를 들어, -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 이런 식으로 numbers가 [1, 1, 1, 1, 1] 로 주어졌을 때 target이 .. 2024. 3. 13.
[코테 스터디] Week1 그리디 & 구현 개념 정리 * 해당 포스팅은 아래 알고리즘 강의를 듣고 정리한 내용입니다. https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2 Greedy (그리디 알고리즘) 탐욕법: 지금 당장 좋은 것만 구함 (최소한의 아이디어) => 크루스칼/다익스트라와 같이 잘 알려진 알고리즘을 제외하고 출제 시 해당 문제를 풀기 위한 최소한의 아이디어를 적절히 떠올릴 수 있어야 풀리도록 출제 ⭐ 정당성 분석 → 단순히 현재 상황에서 가장 좋아보이는 것 => 반복 선택하는 것: 최적해를 보장하는지 검토하는 과정이 필요 탐욕적으로 현재 상황에서 지금 당장 좋은 것만 고르는 방법 = 탐욕법 → 최적의 해를 구할 수 있는지 검토 과정 .. 2024. 3. 9.
[파이썬] 프로그래머스 체육복 https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 이해] 체육복을 도난 당한 학생들이 lost, 여분의 체육복을 가진 학생들이 reserve 리스트로 표현하고 있다. 이 문제에서 가장 중요한 제한 사항은 여분의 체육복을 가진 학생이 체육복을 도난 당했을 때, 더이상 체육복을 빌려줄 수 없기 때문에 lost와 reserve 모두에서 제외되어 도난을 당하지도 않고, 체육복을 빌려주지도 않는 상태가 된다는 것을 이해하는 것이다. 이 외에는 본인.. 2024. 3. 8.
[파이썬] 프로그래머스 숨어있는 숫자의 덧셈(1) https://school.programmers.co.kr/learn/courses/30/lessons/120851 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 이해] my_string이라는 문자열 안에 들어가 있는 자연수들의 합을 구해서 리턴하는 문제이다. 난이도 있는 문제는 아닌데 사용해야되는 라이브러리를 몰라서 좀 헤맸던 것 같다. 근데 다른 사람들의 풀이를 보니까 내가 좀 어렵게 푼 느낌이 들었다. is~ 함수들을 사용하면 되는데 이건 생각도 못했다. [문제 풀이] 내가 사용한 모듈은 re 였다. re.sub(a, b, c) 함수를 사용해.. 2023. 6. 10.
[파이썬] 프로그래머스 옷가게 할인 받기 https://school.programmers.co.kr/learn/courses/30/lessons/120818 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 이해하기] 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해주는 코드를 작성하는 문제였다. 난이도가 어려운 건 아니었는데 문제 조건들을 잘 확인하고 순서도 중요했다. [문제 풀이] 아무 생각없이 풀면 틀리기 딱 좋은 문제 같다. 10만원부터 문제에 쓰여있다고 조건에 10만원부터 넣어버리면 틀린다. 50만원이 가장 크니까 50만원부터 조건문으로.. 2023. 6. 10.