분류 전체보기337 [구현 / c++] 상하 좌우 이동 이동할 dx, dy를 움직임을 표현할 기호 LRUD와 인덱스를 같게 해주어서 4방향이니 4가지 인덱스 중 입력한 LRUD와 인덱스가 같을때 이동하도록 코드를 짠 점 그리고 예외 사항인 맵 밖을 벗어났을때는 움직이지 않도록 하기 위해, 이동이 적용된 예상 좌표를 구하고 수정 후 좌표가 맵 범위 밖일때, continue하여 갱신하지 않고, 범이 밖이 아닌 경우에만 좌표를 갱신하도록 한 점이 포인트였다 여러번 반복해서 풀어보고 익숙해지자 #include using namespace std; int n; // 이동할 맵 범위로 쓸 n 입력 string plans; int x=1, y=1; // 시작 위치 초기화 // L R U D 에 따른 이동방향 int dx[4]={0,0,-1,1}; // 오른쪽 아래로 향하.. 2022. 6. 21. cin 입력 후 다른 타입의 입력 시 꼭 cin.ignore를 해줘야 한다 정수형 cin을 입력 시, 숫자가 입력 버퍼에 저장되지 않고 바로 변수에 저장이 된다 하지만 문자열을 cin으로 입력 시, 입력 버퍼에 저장한 문자를 읽어서 변수로 저장한다 정수형 변수에 입력중에 문자열 변수가 입력이 되면 문자는 입력버퍼에 저장되고 cin은 이 버퍼의 문자를 정수형 변수에 저장하려고 하므로 정상 저장이 되지않고 에러가 나는 것이다 문자열 입력 시에도 \n 이 입력 버퍼에 남아서 문제가 되곤하니 이전 cin 사용 후 cin 이나 getline 등으로 새로운 자료형의 입력을 받을 때에는 항상 cin.ignore() 를 사용해서 입력버퍼를 비워주고 사용하자 2022. 6. 21. [greedy / c++] 최대의 모험단 수 만들기 그리디 관련 공부가 필요해서 아래 유튜브의 그리디 영상을 보고 이해하는데 시간이 좀 걸렸던 문제를 코드로 하나하나 이해해가며 따라해보았다 생각보다 문제가 이해하기 난해했다. 코드 옆에 주석에 문제와 이해한 해석을 달아보았다 https://www.youtube.com/watch?v=2zjoKjt97vQ #include using namespace std; int n; vector arr; // 모험가 길드 문제 // n명의 모험가가 있다. 공포도가 x명인 모험가는 x명 이상의 모험단에 // 참여해야만 출발이 가능하다. 최대로 떠날 수 있는 모험단의 수는? // 모험가가 모험단에 모두 속할 필요는 없다. int main(){ // 공포도가 작은 수부터 모험단을 만들어야 // 최대의 모험단 수를 얻을 수 있다.. 2022. 6. 21. [프로그래머스 2 / c++] 전화번호 목록 - 해시 해쉬를 이용해서 풀라는 문제 같은데, 정렬을 사용 후 앞뒤만 비교하는 것이 더 효율적인 함정 문제이다 하지만 배우는 입장에서는 두 경우 모두 배울점이 많았다 정렬은 sort 후 다음 요소에 이전 요소를 find하여 0인지로 접두어를 찾는 아이디어!(없으면 ::npos가 나올 것이다) 해시는 아직 사용 경험도 부족한 만큼 원리이해와 key값이 없을때 key가 map에 추가되고 0의 value를 갖는점, substr 을 루프에 활용하는 아이디어 등을 배울 수 있었다 #include using namespace std; bool solution(vector phone_book) { // 1. 정렬 후, 뒤의 숫자에서 앞의 숫자 find 하기 // 오름차순 정렬 후, 뒤의 숫자가 앞의 숫자를 포함하는지 확인. .. 2022. 6. 21. 이전 1 ··· 57 58 59 60 61 62 63 ··· 85 다음