본문 바로가기

1단계9

[프로그래머스][C++] 공원 산책 #include #include #include #include using namespace std; vector solution(vector park, vector routes) { vector answer; map obstacles; // 장애물의 좌표들 // 현재 위치 => {posX, posY} int posX, posY; // 시작 지점과 장애물 탐색 for(int i = 0; i < park.size(); i++) { for(int j = 0; j < park[i].size(); j++) { vector v = {i, j}; // 탐색할 위치 if(park[i][j] == 'S') { // 시작 위치 설정 posX = i; posY = j; } else if(park[i][j] == 'X') .. 2023. 10. 27.
[프로그래머스][C++] 개인정보 수집 유효기간 #include #include #include using namespace std; vector solution(string today, vector terms, vector privacies) { vector answer; // 현재 날짜 int curYear = (today[2] - '0') * 10 + (today[3]- '0'); int curMonth = (today[5]- '0') * 10 + (today[6]- '0'); int curDay = (today[8]- '0') * 10 + (today[9]- '0'); // 약관 종류별 보관 달 수 map storage; for(int i = 0; i < terms.size(); i++) { if(terms[i].size() == 3) { //.. 2023. 10. 25.
[프로그래머스][C++] 바탕화면 정리 #include #include using namespace std; vector solution(vector wallpaper) { vector answer; // 모든 파일의 왼쪽 위 점의 위치를 나타냄 vector Files; for(int i = 0; i 해당 좌표를 넣음 Files.push_back({i,j}); } } } // 1. 가장 왼쪽에 있는 파일 찾기 // 2. 가장 오른쪽에 있는 파일 찾기 // 3. 가장 위쪽에 있는 파일 찾기 // 4. 가장 아래쪽에 있는 파일 찾기 int U.. 2023. 10. 20.
[프로그래머스][C++] 둘만의 암호 #include #include #include using namespace std; string solution(string s, string skip, int index) { string answer = ""; // 해당 단어를 만났을 때 스킵할지 여부 map IsSkip; for(int i = 0; i 'z') { .. 2023. 10. 19.
[프로그래머스][C++] 대충 만든 자판 #include #include #include using namespace std; vector solution(vector keymap, vector targets) { vector answer; map key; // 키맵을 돌면서 각 단어별 찾아야되는 횟수를 미리 파악 for(int i = 0; i 최소 횟수로 변경 if(key[curWord] ==.. 2023. 10. 18.
[프로그래머스][C++] 달리기 경주 #include #include #include using namespace std; vector solution(vector players, vector callings) { map playersRank; for(int i = 0; i < players.size(); i++) { playersRank[players[i]] = i; } for(int i = 0; i < callings.size(); i++) { // 현재 플레이어 등수 int curPlayerRank = playersRank[callings[i]]; playersRank[players[curPlayerRank]]--; // 현재 플레이어 순위 상승 playersRank[players[curPlayerRank - 1]]++; // 추월당한.. 2023. 10. 17.
[프로그래머스][C++] 덧칠하기 #include #include using namespace std; int solution(int n, int m, vector section) { int answer = 0; int index = 0; for(int i = section[index++]; i 리턴 if(index >= section.size()) return answer; } i = section[index]; // 현재 섹션을 반복자로 재정의 } return answer; } 1. answer과 index를 선언 2. 반복자 i가 섹션의 0번째 인덱스부터 시작해 n이 될 때까지 반복을 진행한다. 3. 매 반복은 페인트칠을 하는 횟수를 의미하므로 answer을 1씩 증가시킨다. 4. 이후 섹션의 다음 수가 현재 수에 롤러의 길이를 더.. 2023. 9. 13.
[프로그래머스][C++] 카드 뭉치 #include #include using namespace std; string solution(vector cards1, vector cards2, vector goal) { string answer = "Yes"; int x = 0; // card1에서 나와야하는 단어의 인덱스 번호 int y = 0; // card2에서 나와야하는 단어의 인덱스 번호 for(int i = 0 ; i < goal.size(); i++) { string curWord = goal[i]; if(curWord == cards1[x]) { // 현재 단어가 카드뭉치 1에 있는 경우 x++; } else if(curWord == cards2[y]) { // 현재 단어가 카드뭉치 2에 있는 경우 y++; } else { ans.. 2023. 9. 12.
[프로그래머스][C++] 추억 점수 #include #include #include using namespace std; vector solution(vector name, vector yearning, vector photo) { vector answer; map scores; for(int i = 0 ; i < name.size(); i++) { // 이름별 그리움 점수 저장 scores[name[i]] = yearning[i]; } for(int i = 0; i < photo.size(); i++) { answer.push_back({0}); for(int j = 0; j < photo[i].size(); j++) { string curName = photo[i][j]; answer[i] += scores[curName]; } } r.. 2023. 9. 12.