일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 운영체제 기능
- 논리 연산
- 알고리즘 조건
- l-value참조자
- const l-value참조자
- 입출력 관리자
- getline()함수
- c언어 괄호검사
- 회전 및 자리 이동 연산
- 문자형 배열
- string유형
- 주기억장치
- 프로그래머스 푸드 파이트 대회
- 백준 파이썬
- 괄호 검사 프로그램
- 네트워크 결합
- r-value참조자
- 프로그래머스 배열만들기4
- LAN의 분류
- auto 키워드
- C언어 스택 연산
- 문제해결 단계
- const화
- IPv4 주소체계
- 값/참조/주소에 의한 전달
- C언어 계산기 프로그램
- C언어 덱
- 범위 기반 for문
- 유형 변환
- 원형 연결 구조 연결된 큐
- Today
- Total
목록프로그래머스 (105)
chyam

중복된 문자 제거 나의 첫번째 풀이,,ㅋㅋ 사실 처음에 틀려서 어떻게 해야하지? 고민하다가 만약 문자가 문자열안에 존재하지 않으면 추가해주는거구나 깨달았음.. 그리고 다른사람풀이보고 생각하니 count는 필요하지 않고 간단하게 하면 되는거였다..

문자열 바꿔서 찾기 나는 for문을 돌려 A를 B로 바꾸고 B를 A로 바꾸어 준 후 join()함수를 통해 바로 my문자열 알에 pat이 있는지 구하였다. 다른 사람의 풀이를 보니 replace를 통해 풀었다. tmp와 같은 형식으로 a를c로 바꿔준후 b를a로 바꾸는 형식을 취했다. 나는 막상 replace를 생각했지만 a를 b로 바꾸면 안된다는 생각밖에 하지 못했다.. 다음엔 더 나아가 생각해보는 힘을 길려야겠다.

문자열 내 p와y의 개수 대충 p,P와 y,Y 개수가 같으면 True라는뜻임. 나는 for문을 통해 각각 p와 y의 개수를 구하였다. 다른분은 다 소문자로 바꾼 후 count()함수를 사용하였다. count() 함수는 범위도 설정할 수 있다. 2,8은 2번인덱스부터 (8-1)번 인덱스까지에서 개수를 세준다.

홀수 vs 짝수 나는 홀수와 짝수를 따로 두어 if문을 통해 더해주었다. 더한 후 큰값을 리턴하도록 하였다. 이 분은 슬라이싱 step과 max를 사용하였다. 리스트의 짝수번째의 합과 홀수번째의 합중 큰값을 리턴하였다.

x사이의 개수 카운트 해줄 cnt를 0으로 설정해준다. for문을 통해 리스트를 돌려주며 만약 "x"가 아니라면 cnt를 1씩 더해준다. "x"라면 cnt를 새 리스트에 추가한 후 cnt를 0으로 만들어준다. x가 만약 마지막에 나왔다면 리스트의 마지막은 0이 되어야 하고, x가 나온후 계속 다른 문자가 나온다면 그 수를 센 후 마지막에 cnt를 추가해주어야 하므로, for문이 끝난 후에 cnt를 마지막으로 추가해준다.

최소직사각형 문제를 보고 어떻게 풀어야할지 고민하다가, 가로와 세로 중 긴것들과 짧은것들로 나누어보았다. 그러니까 답이 제일긴것과 짧은 것 중 제일긴것의 곱이라는 결과가 나왔다. 그래서 for문에 리스트를 돌려서 가로와 세로의 숫자를 비교하여 숫자가 큰것이 0번 인덱스에 오도록 하였다. 그래서 maxx를 sizes 리스트에서 가장 큰리스트의 0번 인덱스로 지정해주어 가장 큰 값을 구해주었다. 두번째 값을 구하기 위해서는 먼저 리스트중 0번인덱스와 1번인덱스의 크기를 비교하여 작은것을 0번인덱스로 바꿔준다. 그런 후에 가장 큰 값을 구해서 maxy를 구해준다.

분수의 덧셈 numA를 통해 분자부분을 나타내주고, denomA를 통해 분모부분을 나타내주었다, numA와 denomA중 작은것을 min으로 두고 둘의 최대공약수를 구하기위해 for문을 돌려준다. 같은 a를 나누었을때 나머지가0인 a 중 큰 값을 max라고 한다. 마지막에 각각의 분자 분모에서 max를 나눈값을 빈 리스트에 추가해준다.