내일배움캠프 D+37

유제협·2021년 10월 20일
0

알고리즘(python3)

7일간 백준 알고리즘 문제를 풀어보았다.

1) "4673번 셀프 넘버"

알게 된 부분 : 숫자를 각 자릿수로 나누기 위한 방법으로 1의 자리는 N%10을 사용하면 N을 10으로 나눈 나머지 부분으로 구할 수 있었고 10의 자리는 N//10으로 N을 10으로 나누고 몫을 가져오는 것으로 해결을 했다 생각했지만 100의 자리 이후에서 문제가 있었다. 10의 자리를 가져오는 과정에서 몫을 가져오면 100의 자리는 10이라는 값을 가져오게 되는 것이었다. 이 부분에서 다른 방법들을 시도해 봤지만 해결을 하지 못했고 팀원 분이 알려줘서 해결하게 되었다.

해결 방법 : for i in str(N) 이렇게 하면 N 정수를 문자로 바꾼 뒤 for 문을 돌리면 N[0],N[1]이런 식으로 들어오게 되고 이 부분을 가져올 때마다 int(i)로 변환해 변수에 저장해 주면 각 자릿수의 덧셈을 구할 수 있게 되었다.

2) "1157번 단어공부"

쉬워 보이는 문제들을 해결하고 문자열 문제를 풀어보았다. 문제는 간단하게 영어 단어의 소문자 대문자 구분 없이 알파벳 개수를 계산해 주고 가장 개수가 많은 알파벳을 출력해 주면 된다. 이 문제는 문자열로 정규식을 사용하면 풀 수 있을 것 같아 정규식을 보았는데 각 코드의 사용법은 알 것 같은데 활용해서 사용하는 데는 아직 좀 더 예시나 이론을 공부해 봐야 할 것 같다. 내일 학원에서 지원해 주는 알고리즘 강의를 듣고 다시 이어서 나머지 문제를 풀어봐야 할 것 같다.

-알고리즘 문제, 좀 더 공부하면 문제를 즐기면서 풀 수 있을 것 같다.-

0개의 댓글