본문 바로가기

분류 전체보기

(105)
[프로그래머스]수식 최대화 주어진 문자열에서 각각의 숫자와 연산자를 토큰화해 벡터에 저장한다. 만들어진 벡터를 이용해 3!의 경우의 수만큼 반복문을 순회하는데, 현재 반복에서 operation에 정의된 문자가 {"*", "-", "+"}라면 벡터에서 * 연산자만 찾아서 전후의 값을 연산한다. 만약 전과 후의 값이 300과 500이라면 15000이라는 값이 결과로 나온다. 그리고나서 연산에 사용된 3개의 값("*", 300, 500)을 erase하고, 결과 값을 해당 위치에 insert한다. 마지막으로 새로나론 결과부터 연산을 진행할 수 있도록 반복문의 값을 1만큼 줄여준다. 현재 반복문에서 operation 순서가 {"*", "-", "+"}라면 벡터에서 *연산을 전부 진행한 후 -연산을 전부 진행하고 +연산을 진행하면 마지막에 ..
[프로그래머스]후보키 #include #include #include #include using namespace std; vector sub_key;vector store; vector str_tokenization(string str) { vector store; string temp = ""; int index = 0; while(index
[BOJ]13460번: 구슬 탈출2 생각보다 어려웠던 문제 #include #include #include const int dx[4] = { 0, 0, 1, -1 }; const int dy[4] = { 1, -1, 0, 0 }; const int MAX = 20; int N, M; std::string str[MAX]; std::pair pos_B, pos_R; int min = INT_MAX; int temp_Ry, temp_Rx, temp_By, temp_Bx; void swap(int y, int x, char color) { char temp; if (str[y][x] == 'O') { if (color == 'R') { str[temp_Ry][temp_Rx] = '.'; } else if (color == 'B') { str[..
[BOJ]15683번: 감시 단순구현문제 #include #include #include const int MAX = 10; const int VISITED_NUM = 9; int check[MAX][MAX]; int plate[MAX][MAX]; bool visited[MAX][MAX]; std::vector cctv_position; int N, M; int count, zero_size; int min_size = 0; bool Q, W, E, R; void fill_plate(int y_position, int x_position, char dir) { int pos_x, pos_y; pos_x = x_position; pos_y = y_position; while (pos_x >= 0 && pos_x = 0 && pos_y..
[프로그래머스]종이접기 종이접기는 한번 접을 때마다 0모양이 추가되고 기존의 역순으로 더해지는 패턴을 가진다. (A4 용지를 직접 접어보면 쉽게 패턴을 구할 수 있는 문제) #include #include using namespace std; vector solution(int n) { vector answer; string str = "0", reverse_str = ""; for(int i = 0; i
[프로그래머스]추석 트래픽 #include #include using namespace std; int solution(vector lines) { int answer = 0; vector val; int count, hms, sum, num, dif; string str; for (int i = 0; i
[프로그래머스]N진수 게임 #include #include using namespace std; string solution(int n, int t, int m, int p) { string answer = ""; string val = "", total = "0"; int count = 0; int num, div; while(total.length() 0) { div = num % n; num = num / n; if(div >= 10) { val = char(div + 55) + val; } else { val = to_string(div) + val; } } total += val; count++; } for(int i = 0; i
[프로그래머스]파일명 정렬 #include #include #include using namespace std; bool compare(vector a, vector b) { string str1 = ""; string str2 = ""; for(int i = 0; i