본문 바로가기

프로그래머스3

[C++] [프로그래머스] 방문 길이 문제 풀기 전 생각 : /* 문제가 참 길다... 읽기 너무 싫었다 다른 문제나 풀까 싶었지만 문제 따위에게 지지 않아!!! 하고 풀기 시작했지만 쉽지 않았다. 접근법은 먼저 이차원 배열 두개를 만든다. 가로로 이동한 기록을 남기는 배열 하나와 세로로 이동한 기록을 남기는 배열 하나다. 입력받은 문자에 따라 x좌표와 y좌표를 이동시키며 기록을 남긴다. 자세한 설명은 코드가 할거다. */ #include using namespace std; int solution(string dirs) { int answer = 0; int garo[12][12]={0,}; int sero[12][12]={0,}; int x=5,y=5; for(int i=0 ; i 9) continue; sero[x][y] = 1; x+.. 2021. 7. 25.
[C++] [프로그래머스] 약수의 개수와 덧셈 문제 풀기 전 생각 : /* 약수의 숫자가 짝수인지 판별하는 함수를 만든다. left부터 right까지 반복마다 인수판별 함수를 이용해 짝수라면 해당 숫자를 더하고 아니라면 해당 숫자를 감소시킨다. */ #include #include using namespace std; int count_insu(int n){ int count = 0; for(int i=1 ; i 1; i b ? 0 : sign(a)*a + solution(a + 1, b); } 이 코드는 재귀함수로 짠듯하다. 신박하네. #include using namespace std; int solution(int left, int right) { int answer = 0; int count = 2; int check = 2; if(left .. 2021. 7. 25.
[C++] [프로그래머스] 하샤드 수 (pps 4-7) 문제 풀기 전 생각 : /* 입력받은 숫자를 문자열로 변환 후 각 문자열의 캐릭터마다 '0'을 뺀 값을 변수 n에 더하고 만약 x%n 이 0이라면 하샤드 수이고 아니라면 하샤드 수가 아니다 */ #include #include using namespace std; bool solution(int x) { string s = to_string(x); int n = 0; for(int i=0 ; i 0) { nSum += nTemp % 10; nTemp /= 10; } return x % nSum == 0 ? true : false; } 아스키 코드와 문자열을 사용하지 않고 나누기와 나머지를 활용해 푼 듯 하다 이렇게 푸는 방법도 있구나~ 나쁘지 않다. 2021. 7. 18.