본문 바로가기

분류 전체보기337

백준 9375/c++ )) 패션왕 신해빈 조합을 사용하여 입을 수 있는 의상의 경우의 수를 구하는 문제이다 의상 하나를 입력 시 의상의 이름 + " " + 의상의 종류 로 입력이 되기 때문에 공백을 전 후로 입력을 두번 받는셈이다 입력은 두개지만 의상의 이름은 필요없으므로 의상의 종류만으로 경우의 수에 고려한다 그 의상을 착용하지 않은 경우도 그 의상의 종류 중 하나로 더하여 계산한다 map을 통해 의상의 종류를 key값으로, 종류별 개수를 value값으로 저장하고 종류별 착용가능 개수를 모두 곱해서 (가지고 있는 종류+1미착용) 경우의 수를 구한다 그 중 모든 종류를 미착용한 알몸상태는 제외하니 -1 을 하여 최종 경우의 수를 구한다 그것을 테스트 케이스만큼 반복하는 문제이다 주의사항 map을 대입시 auto 자료형을 사용해야 된다 종류개수에.. 2022. 6. 15.
컴파일은 되나 입출력이 계속 남아있으면 반복문 조건을 보자 반복문 조건 중 범위 제한에 ++하는 실수가 아닌지 확인해보자 별거아니지만 생각보다 잦은 실수다 for ( int i = 0; i 2022. 6. 15.
벡터, map 등의 동적 요소를 반복 대입 할 때 auto 자료형를 쓰자 예를 들어 for( auto a : map) { sum = a.first +1} // 벡터나 map의 경우 동적 요소이므로 자료형도 동적인 auto 여야만 한다 와 같이 동적인 벡터, map등의 요소를 반복하여 꺼내어 연산 시 요소 내의 자료형을 미리 알 수 없으므로 auto 자료형을 사용하여 매 반복마다 초기화하여 타입을 동적으로 정해줘야만 한다 2022. 6. 15.
백준 1620/c++ )) 나는야 포켓몬 마스터 이다솜 t 대신 s를 재사용해도 다시 새로 입력 받는거니 문제없다 map 사용 시 value 값으로 key값을 찾는 방법은 없다. 있어도 너무 긴 연산이 필요하여 알고리즘에 부적합하다 그러므로 value값을 key값으로 갖고 key값을 value 값으로 갖는 새 map을 하나 더 만들어서 2개의 map 으로 사용하여 계산하는 것이 해답이다 c_str 과 atoi 를 통해서 문자열을 숫자로 변환하고 그게 가능한지 불가능하면 0를 반환하게 하는 방법이 쓰였다 문자와 숫자가 섞이지 않은 문자열이므로 가능했으며, 첫 단어가 영문자 or 숫자 로 정해져있기에 문자 0과 숫자 0을 구분해줄 isdigit 을 사용할 필요가 없었는 문제였다 굳이 map을 안쓰고 배열로 풀어보려다가 런타임 오류를 해결못해서 다시 map 으로 .. 2022. 6. 15.