전체 글 126

[백준 BOJ] 1753_최단 경로

다익스트라에 대한 문제를 우선순위 큐를 사용하여 풀어보았다. 우선순위 큐는 최대 힙의 구조를 가지고 있는데, 최소 비용을 탐색해야하기 때문에, 비용 값을 음수화 하여 힙에 넣었다. 이 코드는 내가 구현한 코드가 아니라https://jaimemin.tistory.com/555 의 코드를 참고하였다. 함수의 형태가 void나 int가 아닌 vector를 사용하였는데 이런식의 코드 구현은 처음해봤다. return값을 담는 부분을 유의해야 할 것같다. 우선, 전역변수는 다음과 같이 선언하였다. #include #include #include const int MAX = 20001; const int INF = 987654321; using namespace std; int V, E, K; vectorgraph[..

[백준 BOJ] 10451_순열 사이클

그래프 문제 중 사이클의 개수에 대한 문제이다. 생각보다 어렵지 않게 구현했는데 사이클의 개수를 구하는 부분이 조금 어려웠다. 1 3 5 7의 사이클 개수는 1개인데 방문할 때마다 체크 하면 값이 4가 나오고 그랬다. 특히 재귀에 대한 부분을 해결하는게 관건이었다. 처음엔 void dfs로 했는데 int dfs로 구현하여 return 값을 통해 구해야 할 부분만 구하고 종료시키는 방법을 선택하였다. 입력 int size; cin >> size; int n; for (int i = 1; i > n; graph[i].push_back(n); } 처음에 입력받는 것에 잘못 접근해서 조금 헤맸었다. 입력 값을 정렬하여 새로운 벡터에 넣고 서로 이어줘야 하는지 생각했었다. 하지만 그럴 필요 없이 1,2,3..N번..

C++ STL 정리 - sort 함수

기본적인 정렬 int a[5] = { 5,2,1,4,3 }; sort(a, a+5); 벡터에 구조체 사용하여 정렬 기본적인 구조체의 모습은 아래와 같다. 점수, 랭크, 인덱스라고 보면 된다. struct s { int num; int rank; int idx; }; 벡터의 입력은 다음과 같이 받는다. vectorv; v.push_back({ 1,3,5 }); // num, rank, idx 순서 v.push_back({ 3,1,1 }); v.push_back({ 2,5,1 }); //sort(v.begin(), v.end()); // 이렇게 하면 오류 sort(v.begin(), v.end(), cmp_vector_struct); 주석처리한 부분이 오류가 나는 이유는 하나의 인덱스에 3개이상의 정보를 담..

Programming/C++ 2019.11.28

[백준 BOJ] 5430_AC

덱(Deque)을 사용하는 문제 중 하나. 문제를 이해하는데는 많이 어렵지 않았지만, 배열의 입력이 [1,2,3] 으로 들어오는 것을 처리하는게 까다로웠다. 빈 배열이 입력되는 경우 덱의 자료형이 int이기 때문에 원소 사이사이 쉼표를 넣고 마지막 원소에는 쉼표를 넣지 않는 처리 ex) [1,2,3,] 이렇게 되지 않도록 또한, 'R' 입력의 경우 실제로 덱을 reverse 하는것이 아니라 flag 변수를 선언하여 배열이 reverse 상태인지 확인만 시켜주어야 시간초과가 안난다. 테스트 케이스가 첫줄에 주어지는 문제여서 사용한 변수들의 초기화도 중요한 부분이다. 이 문제에서는 덱만 초기화 시켜주면 되었다. 처음에 문제를 풀때 덱의 자료형을 'char'로 선언하였다. 이렇게 하면 숫자가 두자리 숫자일 때..

42 Seoul 이노베이션 아카데미 접수

주당 20만원씩 주며 2년간 프로젝트를 하는 42서울 프로젝트 경험이 충분하지 않아 접수 후 온라인 테스트에 응시하여 합격하였다. 현재 3기까지 마감이 되었다. 11월 30일까지 접수기간인데 벌써 1,2,3기가 마감이라니.. 1기를 놓치고, 2기 2차를 신청한다는것을 3기 1차로 신청하여 2기 대기자로 들어가게 되었다 ㅠㅠㅠㅠ 아래 사이트는 42서울 두번째 테스트와 비슷한 유형의 문제이다. 아마 실리콘밸리 42에서 만든듯?.? 재귀를 잘 이용하면 문제를 풀 수 있으니, 42서울 지원하기전에 연습을 해보면 확실히 도움이 될 듯하다. http://ftzzle.42.us.org/level1.html Robozzle like - 42 ftzzle.42.us.org

삼성 청년 아카데미(SSAFY) 3기 접수

30분 인적성 30분 컴퓨터 사고 지난 주말 싸피 온라인 시험을 보았다. 인적성 문제는 gsat의 유형과 비슷했다. 1~2개 찍을까 말까 했다가 혹시나 감점이 있을까 찍지는 않았다 컴퓨터 사고는 확실히 시간이 엄청 부족했다. 일일이 손으로 세보고, 규칙을 찾는데 너무 오래걸렸다.. 비전공자는 확실히 힘들었을거 같고 전공자도 많이 어려웠을거라 생각한다. 2기에 비해 많은 인원을 뽑는다고 하니.. 다음주 쯤 발표로 예상하는데 잘 되면 좋겠다 ㅜㅜ

[백준 BOJ] 1707_이분 그래프

기존의 백준 문제들과는 달리, 테스트케이스의 개수가 주어지다 보니 사용했던 벡터, 배열의 초기화가 필요했다. 코드에는 graph[j].clear()로 되어있지만, 처음에는 graph->clear()로 나와서 어떤게 문제인지 고민했다. 이분그래프란 인접한 정점끼리 서로 다른 색으로 칠해서 모든 정점을 2가지 색으로만 칠할 수 있는 그래프이다. [문제 해결 방법] color 배열을 만들어서 방문 정점, 정점과 이어진 정점의 숫자를 다르게 하여 설정하였다.(빨강 = 1, 파랑 = 2) 초기화 : 0 첫 정점 방문시 : 1 color가 1인 정점과 연결된 정점 : 2 color가 2인 정점과 연결된 정점 : 1 정점이 100개 이어져 있다고 해도, 1~4번 정점 사이에 이분그래프가 만들어지지 않으면 절대 이분그..

19년도 상반기 SK 주식회사 C&C 전환형 인턴 후기

19년 7월 1일 ~ 19년 8월 16일까지 SK 주식회사 C&C 인턴으로 근무했다 아무래도 인턴이라 실제 업무에 배치 받지는 못하고 주로 교육을 받았다. 이런 점이 대기업 인턴의 단점인듯.. 인턴을 하며 느낀점은 회사 사람들의 성격이 되게 비슷하다는 점? 그리고 입사 후 하는 업무/활동은 비교적 입사를 위한 노력, 어려움에 비해 강도가 약한것같다. 비록 전환에 실패하여 취업준비를 하고 있지만, 좋은 사람을 만났고, 좋은 경험을 쌓았다고 생각한다.

[백준 BOJ] 1152번_단어의 개수

https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. www.acmicpc.net getline(cin, str)을 사용해볼 수 있는 문제였다. "Hello world"와 같은 입력을 받는 경우 cin>>str을 하면 str에는 Hello 까지만 담기게 된다. getline의 경우 공백을 포함하여 입력을 받기 때문에 공백이 있는 문자열 처리에 사용하기 좋다. [문제 해결 방법] 공백의 아스키 코드값인 32를 확인하여 단어의 개수..

알고리즘 문제풀이(Java) - 백준 1149번 (RGB 거리)

다음은 소스코드 이다. 12345678910111213141516171819public class DP_RGB_Street_1149 { public static void main(String[] args) { int R = 0, G = 1, B =2; // 빨 , 파, 초 순서 Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 집의 수 : 반복 횟수 int[][]arr = new int[n][3]; // 집을 칠할때 드는 비용. 맨 마지막 칸은 최종합 arr[0][R] = sc.nextInt(); arr[0][G] = sc.nextInt(); arr[0][B] = sc.nextInt(); for(int i=1; i