728x90

코딩테스트 103

2023 상반기 하나은행 디지털 코딩테스트 후기

간만에 코딩테스트 후기.. 1. 오랜만에 하려니 정말 죽을 뻔 했다.ㅋㅋㅋㅋ 솔직히 내가 코딩을 엄청 잘 하는건 아니지만 프로그래머스 레벨2는 웬만하면 푸는 정도? 백준 골드5정도 까진 풀 수 있는정도였는데 근 3달정도는 아예 파이썬을 켜보지를 않았더니 +알고리즘을 거의 안봤더니 단순한 로직 짜는 것도 헷갈렸다. 2. 문제 후기 - 우선, 문제를 공개하지 말라고 했으니 구체적으로 말하기는 어려울 것 같다. 하지만 중요한건 5문제를 2시간에 풀라는거였고, 그래서 나는 상당히 쉬운 문제들이 나올것이라 추측했다. - 전체 알고리즘4문제, SQL1문제가 출제됐는데 내가 생각한것과는 조금 다르게 문제가 출제됐다. - SQL은 매우 쉽게나왔다. 작년보다 더 쉽게나온기분 - 알고리즘도 1번 문제는 매우 쉬웠다. 파이..

백준 11501 주식 파이썬 코드 풀이

https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net 와우 이정도도 이제 혼자 못 풀겠어서 다른사람 글을 참고해서 풀었다 ㅠ 코딩이 어렵진 않은문제 N = int(input()) tc = {} for i in range(N): int(input()) tc[i] = list(map(int, input().split())) ans_list = [] for i in range(N): price_max = 0 ans = 0 for comp in..

리트코드 DB HARD 문제 601. Human Traffic of Stadium 쿼리/풀이

https://leetcode.com/problems/human-traffic-of-stadium/description/ Human Traffic of Stadium - LeetCode Human Traffic of Stadium - Table: Stadium +---------------+---------+ | Column Name | Type | +---------------+---------+ | id | int | | visit_date | date | | people | int | +---------------+---------+ visit_date is the primary key for this table. Each row leetcode.com 사실 솔루션 참고함 ^^.. 전에 빅데이터팀에..

리트코드 database 문제 262. Trips and Users 풀이/쿼리

https://leetcode.com/problems/trips-and-users/description/ Trips and Users - LeetCode Trips and Users - Table: Trips +-------------+----------+ | Column Name | Type | +-------------+----------+ | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | request_at | date | +-------------+----------+ id is the leetcode.com Hard로 있길래 풀어봤더니 조인 개념만 정확히 숙지하고 있으면 꽤 쉽게 풀 ..

2022년 하반기 삼성전자 코딩테스트 후기

지난 일요일 삼성전자 코딩테스트를 봤다. 솔직히 다른사람들이 어떻게 느꼈을지 너무 궁금해서 인터넷에 조금 검색해봤는데.. 이번에 삼성전자 코테 본 사람중에는 블로그 하는 사람이 없나보다…ㅠ 글을 못찾았음. 그래서 내가 쓰기로 했다. ㅎㅎ —이하 후기— 삼성전자는 원래 시뮬레이션, 다시말해 구현 문제를 출제하는걸로 유명했다. 백준에 기출문제들을 봐도 그렇고 후기들을 봐도 그랬다. 복잡한 조건을 걸어야 하는 구현 문제 하면 삼성, 아이디어로 효율적으로 코딩해야하는 문제 하면 카카오 이런느낌. 그런데 이번에 문제 유형이 조금 바뀌었다. 시간이 4시간으로 늘면서 어느정도 변화가 있을 것 같다고 생각을 하긴 했는데.. 이렇게 바뀔줄은 몰랐지.. —————- 1번은 이전과 같은 시뮬레이션 문제였다. 검투사가 있고,..

백준 21611 마법사 상어와 블리자드 파이썬 풀이/코드 (삼성 기출, 구현 문제)

정확히 2시간 40분정도 걸려서 푼 문제. 어제랑 그제 자꾸 사이에 서렌쳐서 오늘은 꼭 한문제 혼자 힘으로 풀어야겠다고 생각했었다. 그래서 풂!!!! 다행히 간만에 풀렸다 ,,ㅋㅋㅋㅋㅋㅋㅋ 와 진짜 푸는데 죽을뻔햇음........ 꿀팁 이 문제도 이전처럼 꿀팁이랄건 딱히 없는 것 같다. 디버깅하는 사이사이에 보니까 내가 인덱스 잘못넣거나 했던게 매우 많았음. -> print로 확인하고 수정 작업 거쳐서 풀었다. 아 꿀팁 하나 있긴함 구불구불하게 경로를 설정해줘야해서 이부분에서 미리 path를 만들어두고 그 path를 따라서 움직일 수 있게 하면 나머지 부분에서 경로를 설정할 때 덜 헷갈리고 에러도 줄어들 것 같다. (더 쉬운 방법이 있을수도? 걍 나는 이게 쉬울거같아서 이렇게 풀었음) 경로 로직까지 만드..

백준 23290 마법사 상어와 복제 파이썬 풀이, 코드 (삼성 기출, 시뮬레이션)

풀이 팁 1. 하라는 대로 하면 ㄹㅇ 되는 문제 2. 물고기 위치를 어떻게 끌고갈지 잘 생각해볼것. 나는 극강의 dict 문법을 사용해서 풀었다.....ㅋㅋㅋㅋ쉽지않았음ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 여담이지만 dict든 뭐든 본인이 인덱스를 계속 끌고가거나? 해야하는 문제에 닥쳤을때 잘 쓸 수 있는 자료형을 하나쯤 숙지해두면 좋을 것 같다. 개인적으로 저는 dict를 많이 쓰는편입니다..만 사람마다 다르겠죠. 이 문제도 다른 사람 풀이 보니까 3차원 배열을 쓴거같은 사람도 있고.. 그게 더 편할지도 모르겠습니다. 하지만 저는 dict가 편해서 dict로 끌고가서 잘 풀었습니다. 배열을 쓰기에는 dict로 해도 키값이 최대 16개 까지..

백준 20061 모노미노도미노 2 파이썬 풀이, 코드 (삼성 기출, 시뮬레이션)

코드는 아래에. 풀이 팁 1. 시키는 대로 할 것. (조건 꼼꼼히 보기) 2. 아랫쪽으로 움직이는거 (green 부분) 먼저 만들고 오른쪽으로 움직이는건 대칭 써서 풀면 조금 더 빠르게 풀 수 있다. 주의할 점 - t조건에 따라서 동일한 for문이 여러개가 나온다. 이렇게 동일한 역할을 하는 for문이 여러개가 나오면 사이에 하나의 for문에서 로직을 수정할때 다른쪽에 있는 for문 로직도 같이 수정해야 한다. 나는 이부분에서 나는 시간을 엄청 소요했다. 사이에 휴먼에러 당연히 있을 수 있고 디버깅해서 찾으면 됨. 근데 그렇게 해서 찾은 에러를 모든 for문에 적용하지 않고 하나를 빠트려서, 이후 나오는 에러도 자꾸 뭔가 거의 된 것 같은데 안되고.. 추후 시뮬레이션 문제 풀 때 주의해야할 듯.. 에러 ..

삼성기출, 백준 23288 주사위 굴리기2 파이썬 코드/풀이

한시간 정도 잡고 풀었는데 한시간 반 걸렸다. 예제에 안되는 문제가 있어서 디버깅 해보니까 주사위 돌리는 과정에서 딥카피가 안돼서 오류가 나고 있었다. 해당 부분 for문으로 값을 넣어줘서 딥카피로 해결했다. 총 4개 함수를 만들어서 풀었다. 1. 이동 방향 결정 + 주사위 모양 바꾸기 2. 주사위가 이동하는 부분의 좌표 확인 3. 좌표 확인시 뒤로 되돌아가는 경우 이동방향 재결정 및 주사위모양 다시바꾸기 4. 점수계산 N, M, total = map(int, input().split()) grid = [] for i in range(N): grid.append(list(map(int, input().split()))) dice = [[0 for i in range(3)] for j in range(4)..

백준 14503 로봇 청소기 파이썬 풀이 및 코드 (시뮬레이션 문제)

코드는 여기. 해설 및 잡설은 아래로.. N, M = map(int, input().split()) r, c, dir = map(int, input().split()) grid = [] for i in range(N): grid.append(list(map(int, input().split()))) # if 청소 : 2 start = [r, c, dir] stack = [start] answer = 0 dir = [[-1, 0], [0, 1], [1, 0], [0, -1]] def next_dir(grid, y, x, d): ny, nx = 0, 0 # dir = [[-1, 0], [0, 1], [1, 0], [0, -1]] for i in range(4): next_dir = (d+3)%4 dy, dx..

728x90