일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- const l-value참조자
- 운영체제 기능
- 문자형 배열
- C언어 스택 연산
- getline()함수
- string유형
- 괄호 검사 프로그램
- 프로그래머스 배열만들기4
- LAN의 분류
- 프로그래머스 푸드 파이트 대회
- l-value참조자
- 값/참조/주소에 의한 전달
- C언어 덱
- auto 키워드
- 알고리즘 조건
- 네트워크 결합
- C언어 계산기 프로그램
- 회전 및 자리 이동 연산
- 입출력 관리자
- 유형 변환
- r-value참조자
- const화
- 논리 연산
- 범위 기반 for문
- IPv4 주소체계
- 원형 연결 구조 연결된 큐
- 주기억장치
- 문제해결 단계
- 백준 파이썬
- c언어 괄호검사
- Today
- Total
목록프로그래머스/LV0 (18)
chyam

아래 코드는 다른사람 풀이인데 나와 달리 ans라는 리스트를 만들어 비교적 쉽게 푼것같다.. 약간 까다로웠다.

아래 코드는 다른사람의 풀이인데, lambda 뒤에 여러개를 쓰면 그에 맞는 기준으로 정렬되는지 몰랐다..ㅎㅎ

나는 일단 l부터 r 사이의 수 인 동안 반복문을 돌려서 x의 값을 1씩 늘려주었다. x의 값은 l로 처음에 선언한 뒤 cnt를 0으로 두고, p를 x//5로 두어 몫을 문자로 바꾸어주었다. x를 5로 나누었을때 나머지가 0이라면 일단 5의 배수라는 뜻이다. 5또는 0이 꼭 들어가는 수들의 몫은 1과 0으로만 이루어져 있어야 하므로 0과 1이 있을때 1을 더해주어 만약 cnt값이 p의 길이와 같다면 1 0으로 이루어진 수이므로 x를 배열에 추가해주었다. 아래는 다른 사람의 풀이인데, 내가 원했었던 풀이였다. 0과 5만으로 이루어진것이 아닌것을 어떻게 표현할지 몰랐는데 배열을 넣어서 풀수 있었다...

숨어있는 숫자의 덧셈(2) 이 문제를 푸는데 질문을 계속 잘못읽어서 헷갈렸었고 런타임에러도 나면서 많은 실패를 겪었다..ㅎ 먼저 첫번째 조건에 빈 배열이라면 arr[i]을 추가해줘야하는데 계속 0번 인덱스를 추가해서 오류가 났었다...ㅋㅋ 그리고 i에 1을 더하는게 마지막 조건에서는 없는데 이것도 잘 지키지 못했었다..ㅎㅎ 사실 이거만 봤으면 간단한 문제였던것같다.

숨어있는 숫자의 덧셈(2) 이 때는 isdigit()을 잘 활용하지 못했어서 아스키코드를 사용했었다. 소문자로 바꾸고 알파벳들을 공백으로 바꾸어주었다. 그 후 공백기준으로 나누어주어 정수로 변환하여 더했다. isdigit()을 사용한 풀이이다. 만약 숫자면 그냥 an문자열에 추가하고 아니라면 공백을 추가한다.

팩토리얼 풀때도 느꼈지만 노가다로 풀었다는 생각을 했다. n의 최댓값을 보니 10까지의 곱이어서 while 범위를 a가10이하일때까지로 잡고 만약 sum값이 n과 같으면 a를 바로 리턴해주었다. 하지만 a가 한번더 곱해지고 n과 같아질수도 있으므로 그떄도 a를 바로 리턴해주었다. n보다 크다면 a-1을 바로 리턴해주었다. 아마 내가 이렇게 노가다로 푼 이유가 n이 딱 1*2*3*...해서 정확이 같은 수가 아닐수도 있어서 인것같다. 다시 생각해보면 다르게 했을수도 있었는데.. 이 분들은 answer을 1씩 늘려가며 팩토리얼을 구했다. 나와 다른점으로는 while의 범위가 n보다 같거나 작은거다. 같거나 작으면 반드시 answer값이 1이 더크므로 while뒤에 1을 빼준다.

특별한 이차원 배열1 [[0]*n for i in range(n)]을 통해 n*n배열을 만들어준다. 이걸 잘 몰랐어서 처음에는 [[0]*n]*n ? 이런식으로 했던것같다. 다른사람풀이 보니까 아 ㅋㅋㅋ a랑 b랑 같은데 왜 굳이 중첩for문을 썼을까 생각이 들었다..