알고리즘
-
C++ String Replace 함수유용한 정보 2022. 1. 1. 00:47
1. 헤더 선언 #include => string 헤더에 포함된 함수이므로 string헤더를 참조해야 합니다. 2. 사용법 S.replace(시작점, 변환할 갯수, 대체할 문자열); => 위와 같이 시작점, 변환할 개수, 대체할 문자열을 대입하여 주어진 String에서 replace함수를 사용할 수 있습니다. 3. 예제 #include #include #include #include #include #include #include #include using namespace std; int main() { string s("you are the apple of my eye."); s.replace(0,3,"We"); cout
-
카카오프렌즈 컬러링 북 C++프로그래머스(Programmers) 2021. 12. 28. 10:45
예제 입출력 m n picture answer 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] 예제에 대한 설명 예제로 주어진 그림은 총 4개의 영역으로 구성되어 있으며, 왼쪽 위의 영역과 오른쪽의 영역은 모두 1로 구성되어 있지만 상하좌우로 이어져있지 않으므로 다른 영역이다. 가장 넓은 영역은 왼쪽 위 1이 차지하는 영역으로 총 5칸이다. #include #include #include #include using namespace std; int arr[101][101]; int UpDownLeftRight [4][2] ={{1,0},{-1,0},{0,1},{0,-1} }; vec..
-
-
백준 1193 - 분수찾기백준 algorithm 2021. 1. 4. 22:41
=> 단순한 규칙성을 찾는 문제입니다. => 처음부터 끝까지 찾아갈 경우 시간제한에 걸리는 경우가 생길 수 있습니다. x가 몇번째 줄에 해당하는지 찾습니다. 해당 줄이 짝수인지 홀수인지 판별합니다. 각 줄의 성질에 따라 deno(분모), nume(분자)를 구하여 print 합니다. 각 줄에 있는 분수는 아래의 성질을 만족합니다. line + 1 = 분모 + 분자 위의 성질을 이용하여 for문을 통한 탐색이 아닌 사칙연산으로 원하는 분수를 구할 수 있습니다. #include #include using namespace std; void Print(int deno, int nume) { cout
-
백준 1015 - 수열 정렬백준 algorithm 2020. 7. 15. 23:43
=> pair를 사용하여 문제를 해결하였습니다. => pair.first : 원소 값 => pair.secodn : 원래의 INDEX 값 => 위와 같이 설정을 하고 문제를 풀었습니다. 입력받은 pair형 vector를 sort함수를 하여 정렬시킵니다. 정렬된 배열을 처음부터 읽으며, second 값을 기준으로 새로운 배열의 INDEX에 값을 대입합니다. ans [arr [i]. second]=i; 위와 같은 논리로 코드를 짰습니다. *pair형 배열을 만드는 방법을 찾지 못해, pair형 vector로 답을 생성하였습니다. #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.ti..
-
네오위즈 인턴 코딩테스트 후기코딩테스트 후기 2020. 6. 19. 00:12
🖖🖖🖖 알고리즘 3문제, SQL 3문제로 이루어져 있었다. 특이한 점은 c++이나 Python을 허용하지 않고 JAVA로만 테스트 응시가 가능하다는 점이었다. 프로그래머스 사이트를 통해 알고리즘 테스트가 진행되었다. 정해진 날 중 본인이 원하는 시간 내에 편한 시간에 문제를 풀면 된다. 문제풀이 시간은 300분(5시간)으로 굉장히 길었다. 아무래도 하나의 언어로 진행하다 보니 시간을 더 준 것이 아닐까 하는 생각을 하였다. 사전 테스트 문제와 실제 문제 간의 난이도 차이는 확실하다. 문제를 유출하지 않기로 서명하였기 때문에 문제에 대한 정보는 이 이상 알려줄 수 없을 듯하다. -백준 알고리즘의 DFS, BACK TRACKING, 구현등의 문제를 풀어보면 좋을 듯 싶다. -SQL의 경우 DBMS를 공부한 ..
-
백준 2941 - 크로아티아 알파벳카테고리 없음 2020. 6. 17. 16:36
=> 문자열을 다룰 줄 아는지 물어보는 문제입니다. => string 헤더를 제대로 이해하고 내장되어있는 함수들을 통해 풀 수 있습니다. => 저는 처음에 if문으로 구현할 수 있을 줄 알았는데, 해당 방식으로 하면 참조하지 말아야 할 위치를 참조하는 등의 잘못이 생깁니다. => string의 find() 함수와 replace 함수를 적절히 사용하여야 합니다. 크로아티아 알파벳을 담을 배열을 생성하고 초기화한다. 해당 크로아티아알파벳을 찾을 경우 해당 구간을 *로 바꿔준다 위의 과정은 같은 단어가 여러 번 들어가 있을 경우를 위해 다시 검색되지 않도록 하기 위해서 하는 과정이다. 해당 과정을 진행하며, 크로아티아 알파벳의 개수와 해당 알파벳의 길이를 점진적으로 구한다. 문자열의 길이 - 크로아티아 알파벳..
-
백준 1759 - 암호만들기백준 algorithm 2020. 6. 17. 15:44
=> 입력값의 범위가 작기 때문에 브루트 포스로 해결할 수 있습니다. ** 본인이 작성한 코드에는 정렬의 과정이 표현되어있지 않기 때문에, 함수 진입 전에 alpha vector의 sort과정이 필요합니다. #include #include #include #include using namespace std; bool check(string &password) { int conso=0; int vowel=0; for(char x : password) { if(x == 'a' || x=='e' ||x=='i' || x == 'o' || x== 'u') { vowel ++; } else{ conso++; } } return conso >= 2 && vowel >=1; } void go(int n, vector..