|
안녕하세요.
개발자 고반입니다.

thumbnail
[프로그래머스] [1차] 셔틀버스

1. 문제 [1차]셔틀버스 2. 핵심 아이디어 구현 3. 코드 4. 풀이 과정 뭔가 특별한 알고리즘을 써야하나 싶어서 문제를 시간을 들여 좀 자세히 봤는데, 딱히 떠오르지 않았다. 또한 주어진 데이터의 크기가 작았기 때문에 구현으로 문제를 풀어도 충분하다고 생각이 들었다. 중요한 포인트는 다음과 같다. 마지막 버스에 사람들이 다 차있는지 확인하기 위해 시뮬레이션 형태로 버스마다 탑승하는 사람들을 빼주었다. 그리고 마지막으로 탑승한 사람의 idx는 대기열에 있는 사람의 수가 된다. 이를 이용하여 경우에 따라 다르게 답을 산출했다. 5. 다른 사람의 코드 프로그래머스에 있는 다른사람의 풀이인데, 사용이 신기해서 가져와봤다. prefix는 접두사 suffix는 접미사 라는 의미인데, paramater에 숫자n을 넣으면 prefix는 앞에서부터 n 만큼, suffix는 뒤에서부터 n만큼 원소를 가져온다. 비단 String 뿐만 아니라 Array에서도 사용가능하다. 이거는 C나 C…

March 21, 2023
Algorithm
[SWM] 14기 면접 후기

언제 2023년 1월 9일 ~ 3월 18일 어디서 온라인 (코테 2회) 오프라인 aT 센터 1차 코테 문제는 총 5개 였다. 알고리즘 4 SQL 1 1번: 그리디. 프로그래머스 LV2 2번: 완전 탐색. 프로그래머스 LV3 3번: 그리디. 프로그래머스 LV2 4번: 완전 탐색. 프로그래머스 LV3 5번: SQL. 분기처리 특수한 명령어? 나는 알고리즘 문제를 확실하게는 1번을 풀었다. 2번 3번은 테스트 케이스는 맞췄는데, 복기해보니 틀렸던 것 같다. SQL은 잘모르겠다. 분기처리와 특수한 명령어를 써서 풀었어야 했던 것 같다. 코테를 본 후 나는 아직 코테 실력이 부족하다고 느꼈다.유사한 문제를 풀어봐서 어떻게 풀어야할지 대충 알고 있었는데, 실제 구현에서 시간이 너무 많이 걸렸다. 그래서 2번 3번 문제를 제대로 풀지 못했다. 그래서 탈락하지 않을까 생각했는데, 시험 도중 서버오류가 있어서 1차는 모두가 코테에 합격했다…!! (천운이였던듯) 2차 코테 문제는 1차 코테와 같이 …

March 18, 2023
review
[프로그래머스] 겹치는 선분의 길이

1. 문제 고득점 Kit 겹치는 선분의 길이 2. 핵심 아이디어 3. 코드 4. 풀이 과정 처음에는 이렇게 생각했다. 선분의 총 길이를 구해서 0으로 배열을 초기화 한 후, 해당 배열에 주어진 선분들의 길이에 해당하는 위치에 += 1 씩 해줘서 2 이상인 위치의 개수를 구하면 되지 않을까? 대략 이런식이다. 그런데 이렇게 하면 resultLine 배열의 길이도 다시 맞춰주거나, 동적으로 맞춰주지 않고 제한사항에 맞게 resultLine을 200 (선분의 길이는 -100 ~ 100)을 맞춰줘야하는데, 전자는 번거롭고 후자는 낭비라고 생각해서 다른 방법을 택했다. 간단하게 ~= 연산자를 사용하여 바꿨는데, 훨씬 간결하고 빠르게 answer을 찾을 수 있다. 그런데 현재 이 코드로는 답이 2배가 되었다. 왜인가 하니 라인이 [[0, 2], [-3, -1], [-2, 1]] 으로 주어질 때 해당 위치에서 한번 더 체킹이 되기 때문이였다. 사실은 선분이 끝나는 점의 한칸 전에서 이미 …

February 23, 2023
Algorithm
[프로그래머스] 방의 개수

1. 문제 고득점 Kit 방의 개수 2. 핵심 아이디어 3. 코드 4. 풀이 과정 우선 문제를 보고 다음과 같이 생각했다. 대각선의 움직임을 나타내기 위해서 좌표계를 2배로 그리는 것은 아이템 줍기 문제에서 아이디어를 떠올렸다. 대각선을 표시하는 이유는 다음과 같다. | 그림에서처럼 네모안에 하나의 대각선이 가로질러 2개의 방이 있는 상태를 가정해보자. | 그 다음 대각선을 다른 대각선이 가로지르는 경우, 좌표계에서 따로 표시할 수 없으므로 해당 대각선에서 교차한다는 사실을 알기 어렵다. 하지만 좌표계를 2배로 만든다면, 대각선의 중간에 노드가 생겨서 쉽게 대각선의 교차를 확인할 수 있다. 그 다음 방이 만들어지는 조건은 이다. 때문에 현재 노드와 방문할 다음 노드 두개 모두 필요하고, 이 둘의 경로를 추적하는 것이 필요하다. (중복되는 경로로 방의 개수가 중복 카운팅 되는 것을 막기 위함) 그리고 이러한 아이디어를 종합해서 코드를 짜면 된다. (이틀 걸림ㅋㅋ) 코드에서 P…

February 23, 2023
Algorithm