목록C,C++ (125)
오답노트
https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr - 문제파악 이중배열에서 상하좌우로 연결된 요소들은 같은 영역에 있다고 판단한다. 요소의 숫자가 다르면 상하좌우에 연결되어 있어도 다른 영역이라고 판단한다. 이 때, 영역의 개수와 영역들 중 가장 넓은 너비 값을 출력하라. - 정답 BFS로 문제를 해결했다. 계속 실패하길래 주석을 읽어보니 전역변수를 꼭 solution 함수 내에서 초기화 해야한다... #inclu..
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr - 문제 파악 오픈 채팅방은 사용자가 들어오거나 나가면 화면에 메세지를 띄운다. 이 메세지에는 사용자의 닉네임이 출력된다. 오픈채팅방은 사용자들끼리 중복된 닉네임을 사용할 수 있다. 사용자가 닉네임을 바꿀 수 있는 조건은 한번 들어온 뒤 나갔다가 다른 닉네임으로 재접속할때, 또는 채팅방 내에서 닉네임을 바꾸는 경우 밖에 없다. 오픈채팅방에서 일어난 이벤트가 담긴..
https://programmers.co.kr/learn/courses/30/lessons/60057# 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr - 문제 파악 문자열을 m개로 묶을때 연속되는 같은 단어는 묶어서 표현할 수 있다. 이렇게 문자열을 압축할 때 가장 짧은 문자열의 길이를 출력하라. - 정답 조금 더럽게 풀긴했는데 아예 압축된 문자열을 만들어서 그 길이를 계속 비교했다. #include "bits/stdc++.h" using namespace std; int solution(string..
https://programmers.co.kr/learn/courses/30/lessons/12946?language=cpp 코딩테스트 연습 - 하노이의 탑 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대 programmers.co.kr - 문제 파악 하노이의 탑 최소 이동의 경로를 출력하라 - 나의 접근 https://youtu.be/aPYE0anPZqI 하노이의 탑 영상으로 접근했는데 안됐다. 그런데 구글링해서 있는 답이랑 똑같다.. 아마 return 조건때문에 그런거 같다.. 하노이의 탑 뭔가 뚜렷하게 이해는 못한거 같다. 나중에 다시 풀어보자..
https://programmers.co.kr/learn/courses/30/lessons/12953?language=cpp 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr -문제 파악 N개의 정수가 주어지고 이 정수들의 최소공배수를 구하여라 - 정답 유클리드 호제법으로 최대공약수를 구하고 최대공약수를 이용해서 최소공배수를 구하였다 (https://dhjkl123.tistory.com/34) 유클리드 호제법은 반드시 기억하도록 하자. #include "bits/std..
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr - 문제 파악 핸드폰 숫자 패드를 왼쪽 엄지와 오른쪽 엄지로 주어진 배열 numbers 요소의 순서대로 누르려고 한다. 1,4,7은 왼쪽, 3,6,9는 오른쪽, 2,5,8,0은 가장 가까이있는 손가락으로 누르되, 두 손가락의 거리가 같다면 주어지는 ha..
https://programmers.co.kr/learn/courses/30/lessons/76501?language=cpp 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr - 문제 파악 정수의 절대값이 들어있는 배열과 정수의 부호를 담은 bool 타입의 배열이 주어진다. true 면 양수 false면 음수일 때, 정수의 절대값이 들어있는 배열의 원래 수들의 합을 출력하라. - 정답 #include #include using namespace std; int solution(vector..
https://programmers.co.kr/learn/courses/30/lessons/70128?language=cpp 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr - 문제 파악 정수 배열 a, b가 주어진다. a와 b의 내적을 구하라 내적은 다음과 같다. a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] - 정답 #include #include using namespace std; int..
https://programmers.co.kr/learn/courses/30/lessons/12977?language=cpp 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr - 문제 파악 정수 n이 주어지고 1 부터 n 중에 소수의 개수를 출력하라 - 정답 #include #include #include "bits/stdc++.h" using namespace std; int arr[1000005]; int solution(int n) { int answer = 0; for(int i = ..
https://programmers.co.kr/learn/courses/30/lessons/42576?language=cpp 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr - 문제 파악 마라톤 경기에 참가한 선수와 완주한 선수의 이름을 각각 배열로 주어진다. 이 때 완주하지 못한 선수의 이름을 출력하라. (모든 경우에 1명만 완주하지 못했다) - 정답 처음엔 이중for로 풀었는데 시간이 너무 오래 걸려서 집합 관련 함수를 사용했다. 그런데 제대로 차집합을 출력해지 못해서 오름차순으로 정렬..