일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 그래프탐색
- 미지의 공간탈출
- 토스만능문장
- BFS
- 3dgs
- 최단거리추적
- 시계토끼제니쌤
- 너비우선탐색
- 수학
- 코테
- 백준
- 토익스피킹
- mcp란
- 토스독학
- 구현
- 시뮬레이션
- 28215
- 그리디알고리즘
- 그리디
- Python
- mcp튜토리얼
- 삼성코테기출
- 삼성빈출
- mcp사용법
- DP
- 토스
- 토스유튜브
- 20006
- 20922
- 그래프
- Today
- Total
목록구현 (6)
Victory in my life

📌문제SILVER4 / 브루트포스 / 완전탐색 / 구현 / 알고리즘https://www.acmicpc.net/problem/28215📌문제 분석 및 설계역대급 바보짓한 문제다.. 문제이해부터 알고리즘 구현까지 30분만에 해놓고 초기화잘못된 거 못 찾아서 1시간30분을 날렸다 하핳 아무튼, 문제 읽었을때 조합 함수 사용하고 완탐하면 되겠구나 ! 하고 바로 알고리즘을 작성했다. 나의 실수는 result를 -1로 초기화를 했다는 것이었다.모든 집이 대피소로 지정되는 예외사항을 고려를 하지 못한 것이다.결국 모든 집이 대피소로 지정되는 경우 other not in daepi 조건이 항상 False가 되어, result가 그대로 -1인 상태로 남아버려서 계속 틀렸다.다들 조심. 📌소스 코드import mat..

📌문제SILVER5 / 구현 / 그리디 알고리즘https://www.acmicpc.net/problem/1343📌문제 분석 및 설계문제를 봤을 때,X뭉터기랑 .뭉터기를 분리하는게 이 핵심이라고 생각했다. 따라서 아래와 같은 요소들로 설계를 했다.1. split를 통해서 분리2. 나누기로 A,B삽입3. 반례로 .만 있을때 케이스 분리(자꾸 틀려서 그제야 반례찾으면서 알게 됨) 하지만... replace를 쓴다면 굉장히 간단하게 끝난다..하핳📌알게된 팁문자열에 +연산을 계속하면, 문자열은 불변(immutable) 이라서 O(N^2) 성능이 될 수 있다 👉 리스트에 append() 해서 나중에 "".join()으로 합치는 게 더 효율적!!📌소스 코드처음코드는 아래와 같고 original=input()..

📌문제SILVER2 / 구현 / 그리디 알고리즘https://www.acmicpc.net/problem/1138📌문제 분석 및 설계 문제와 예제를 보니 자신보다 작은 사람이 왼쪽에 몇 명 있는지를 고려해야 한다는 점을 발견했다. 1️⃣ 키가 1인 사람의 자리 결정키가 1인 사람은 자신보다 작은 사람이 없으므로,→ 자신보다 키가 큰 사람 수에 해당하는 인덱스에 배치된다.2️⃣ 키가 큰 사람들의 자리 결정 (키 ≥ 2)키가 2 이상인 사람들은 왼쪽에 있는 작은 사람의 수를 고려해야 한다.자신보다 작은 사람이 이미 배치되어 있다면, 원래 있어야 할 자리보다 더 뒤로 가야 한다.3️⃣ 예제 상황 분석예를 들어, 키가 3번인 친구가 줄을 설 차례이고,왼쪽에 키가 큰 사람이 1명 있다.현재 줄의 상태가 (비어있..

📌문제SILVER2 / 구현 / 시뮬레이션https://www.acmicpc.net/problem/20006📌문제 분석 및 설계이 문제는 나만 그런거같지만 이해가 잘 안됐다..문제 설명에서 시스템순서에서 '입장 가능한 방이 있다면 입장시킨 후 방의 정원이 모두 찰 때까지 대기시킨다'란 말이 혼란을 일으킨것 같았다. 하지만 이 대기시킨다는 것은 모든 플레이어가 입장을 마친 후 방마다 정원확인 후에 하는 과정이었다..그러니까 나는 시스템 설명이 다 순서대로 돌아가며, 입장이 한명씩되는 줄 알았다.. 왜냐면 입력 설명에도 입력된 순서대로 게임을 시작한다길래... 아무튼 대기 및 시작은 모든 플레이어가 방에 들어가고 하는 과정이라는 것..! 문제를 이해한 후에는 순수 구현문제라 쉽게 구현했다. 📌소스 코드..

📌문제SILVER3 / 구현 https://www.acmicpc.net/problem/1913 📌문제 분석 및 설계이 문제는 삼성을 준비한다면 무조건 숙지해가야하는 코드! 삼성 기출을 풀어보면 알 수 있듯이 삼성이 좋아하는 구현이다, 달팽이.해당 문제는 방향을 두번 바꿀때마다 같은 방향으로 가는 길이가 +1 되는게 핵심이다. 9 2 38 1 47 6 5 를 예시로 들어보면(상)1→2, (우)2 →3 두가지 방향으로 직진했다면, 방향을 두번 바꿨으니 다음부터는 직진을 한번씩 더 하게되어(하)3 →4 →5/(좌)5 →6 →7이렇게 이동한다 📌소스 코드n = int(input())k = int(input())grid =[[0]*n for _ in range(n)]dx,dy=[-1,0,1,0],[0,1,0..

📌문제SILVER3 / 구현 / 문자열https://www.acmicpc.net/problem/2852 📌문제 분석 및 설계문제를 봤을 때,[시간을 나타내는 방법, 이긴 시간 계산 방법, 마지막 턴은 예외 처리(48분에서 뺄셈), 출력 형식]이 핵심이라고 생각했다. 1. 분:초 로 나타내는것을 초로 바꿔서 문제를 단순화2. 득점 시간 별로 우위를 점한 팀 기록(동점일때는 0으로 기록)한 후에 해당 기록들을 순회하며 이긴 시간 누적 합산3. 마지막 득점일때 체크해서 48분에서 빼주기4. 포맷팅을 사용해서 출력형식 맞추기 사실 4번의 경우에는 필자는 포맷팅이 생각이 안 나서 아래와 같이 인라인 if-else문을 사용했다. 하지만 포맷팅을 사용하는 순간 가독성도 코드길이도 간결해지니까 포맷팅 기억하기. (..