본문 바로가기

분류 전체보기521

[ 파이썬(python) ] 백준 10214 - Baseball 📍 백준 10214 - Baseball 백준 10214 - Baseball ⚡️ 나의 풀이 이 문제를 처음에 보고 이해가 명확히 안 됐었다. 그러니까.. 테스트 케이스마다 값을 비교해서 출력하라는 건가? 아니면 출력이 잘못 나왔나? 생각했는데 결론적으로 각 테스트 케이스마다 9번의 값을 각각 비교하여 더 많이 누적된 cnt값을 출력하는 문제였다... 내가 독해 능력이 낮은건가.. 라고 생각했다. 각각의 테스트 케이스마다 누적할 값 cnt를 선언한다. 이중 반복문으로 T번의 테스트 케이스 안에 9번의 입력을 받을 때 변수를 선언한다. 안에 있는 반복문을 도는 동안 값을 비교하여 Ycnt, Kcnt에 누적시킨다. 한번의 테스트 케이스가 끝날 때마다 누가 더 큰지 비교하여 값을 출력한다. T = int(inp.. 2021. 5. 13.
[ 파이썬(python) ] 백준 9046 - 복호화 📍 백준 9046 - 복호화 문제: 백준 9046 - 복호화 💡 나의 풀이 저번에 풀었던 단어 공부와 비슷한 문제인데, 단순하게 알파벳의 사용 빈도수를 체크하면 되므로 다음과 같이 풀면 된다. count, index 함수를 알고 있으면 쉽게 풀 수 있다. 테스트 케이스만큼 반복문을 선언한다. 입력 내부 공백을 제거한다(replace) 알파벳 소문자 길이만큼 빈 배열을 선언한다.(빈도수 체크 용도) 입력받은 값을 ord 숫자로 바꾸고 97을 빼준다. (0부터 빈 배열에 넣기 위해) 만약, 입력받은 값의 max가 2개 이상이라면??를 출력한다. 아니면, max값의 위치를 찾고 해당 index와 97을 더해 chr형으로 바꾼다. (4번에서 97 빼준 것을 원래대로 더했다.) T = int(input()) fo.. 2021. 5. 13.
[ 파이썬(python) ] 백준 1157 - 단어 공부 📍 백준 1157 - 단어 공부 백준 1157 - 단어 공부 💡 나의 풀이 언젠가 이 문제를 보고 풀 엄두가 나지 않아서 북마크로 추가만 했었는데, 오늘 다시보니까 풀 수 있었다. 약간 까다로운 문제인데 count, index 함수를 사용하면 금방 풀 수 있었다. 먼저 for문을 풀어서 작성하고 이후에 list_comprehension으로 코드를 단축시켰다. 이해하기 쉽도록 예제 입력에 나와있는 Mississipi를 기준으로 알아보자. 입력을 대문자 or 소문자로 통일 시킨다. (이후에 set으로 변환하기 위함.) 입력을 set으로 형 변환을 시켜 중복을 제거한다. set형으로 for문을 돌려 입력에 i값이 몇 번 쓰였는지 확인하고 빈 리스트에 append시킨다. count_list = [1, 4, 1,.. 2021. 5. 13.
[ 파이썬(python) ] 백준 2231 - 분해합 📍 백준 2231 - 분해합 백준 2231 - 분해합 ⚡️ 나의 풀이 언젠가 백준 단계별 문제풀이에서 이 문제를 봤었는데 그때는 이해가 안 돼서 그냥 넘겨버렸다. 이번엔 집중해서 문제를 잡았더니 풀 수 있었는데 시간 단축하는 방법은 끝내 찾지 못했다. 보통 브루트 포스의 문제의 범위는 1,000,000으로 주어지는 경우가 많다. 코딩테스트 볼 때 범위가 1,000,000이라면 브루트포스를 의심해보자! 총 3번에 걸쳐서 풀었고, 첫 번째는 시간 초과 (코드를 다시보니까 생성자가 없는 조건을 고려하지 않고 설계해서 시간초과가 났다. (21. 5. 13.)), 두번째는 정답판정이 났지만 실행시간이 많이 나왔다. 세 번째는 다른 사람의 코드 중 시간 최적화기능만 가져왔다. 입력을 받는다. target의 분해합을.. 2021. 5. 12.
[ 파이썬(python) ] 백준 3460 - 이진수 📍 백준 3460 - 이진수 백준 3460 - 이진수 ⚡️ 나의 풀이 1의 위치를 찾으면 되는 문제이고 입력을 bin 함수로 변환했는데 중요한 점은, bin함수를 사용하게 되면 ob1010처럼 문자열로 출력한다. 따라서, 조건문을 사용할 때 1 대신 '1'을 사용하도록 하자. 그리고 다른 사람의 코드를 보다가 리스트를 거꾸로 사용해야 하는 경우 range(n-1, -1, -1) 대신 출력부분에 [-i-1]를 사용했다. 일부로 뒤집을 필요 없이 단순하게 출력만 바꾸면 되는 코드였다. 기록해두고 써먹어야겠다. bin 함수를 이용하여 10진수 형태의 입력을 2진수 형태로 변경한다. bin함수로 변환하게되면 ob1010과 같은 값이 나오는데 숫자만 사용하기 위해 슬라이싱으로 [2:] 잘라준다. 최하위 비트(le.. 2021. 5. 12.