본문 바로가기

알고리즘133

[백준 1292 쉽게 푸는 문제][파이썬] https://www.acmicpc.net/problem/1292 --풀이 먼저 2개의 수를 map 함수로 나누어주고, 빈 문자열을 만들어 놓는다 우리가 구하고 싶은 범위 +1까지 해야 range 문에서는 원하는 범위까지 비교 가능하고, 1을 1번, 2를 2번, 3을 3번 ... 하는 과정을 중복 for문을 통해 구현 문제에서 원하는 '번째' 와 우리의 data 리스트안에서의 인덱스는 한칸씩 뒤로 미뤄져야 하니까, -1부터 b 범위 지정 EZ!! 2022. 4. 11.
[백준 1475 방 번호][파이썬] https://www.acmicpc.net/problem/1475 --풀이 6과 9에 관한 로직 66666 -> 69, 69, 6 총 3 세트 len:5 696969 -> 69, 69, 69 총 3 세트 len:6 6666666 -> 69, 69, 69, 6 4세트 len:7 69696969 -> 69, 69, 69, 69 4세트 len: 8 2022. 4. 7.
[백준 10773 제로][파이썬] https://www.acmicpc.net/problem/10773 주석처리된 코드는 정답이 아닙니다 및의 부분 코드가 정답입니다!!!!!!!!!! --풀이 파이썬 내장 함수 pop을 활용한 문제 pop은 리스트의 가장 마지막 인자를 띄우고 삭제하는 함수이다. if/ else 문으로 계속 data에 append를 하기 때문에, 반복문으로 활용 가능하다 이 문제를 읽는 순간 pop을 떠올렸어야 했다. 잘못된 사고 회로: index로 접근 -> 뒷 index 삭제 -> range를 컨트롤 할 수 없는 문제 발생 2022. 4. 5.
[백준 2941 크로아티아 알파벳][파이썬] https://www.acmicpc.net/problem/2941 --정답 코드 이렇게 간단한 코드가 있는데, 삽질 하지 말자... 파이썬 내장 함수들을 잘 생각하고 활용해보자! - 파이썬 내장 함수 정리 글을 한번 올려야겠다 2022. 4. 5.
[백준 1316 그룹 단어 체커][파이썬] https://www.acmicpc.net/problem/1316 --풀이 (사진이 작아서) #1316 n=int(input()) answer=0 for _ in range(n): data=input() count=0 for x in range(len(data)-1): #x+1로 하기 때문에, index를 맞춰줌 if data[x]!=data[x+1]: #이어진 두 문자가 다른 경우 data_new=data[x+1:] #새로운 문자열을 만들기 -> 비교한 문자열을 버린다는 개념 if data_new.count(data[x])>0: #남은 문자열에 해당 문자가 있다면 count+=1 if count==0: # 비교하고 난 후 그 뒤의 문자열에 비교한 문자가 포함되어 있지 않은 경우만 포함 #ex) happ.. 2022. 4. 4.
[이코테- 상하좌우][파이썬] 나동빈님 이것이 취업을 위한 코딩테스트다 110p --풀이 탐색 문제, 말 그대로 문제에서 구현을 원하는 것을 코드로 논리정연하게 옮겨보자 2022. 4. 4.
[백준 1543 문서 검색][파이썬] https://www.acmicpc.net/problem/1543 풀이 코드-------- 윗 부분 코드는 정답이 아닙니다 ------------------ -- 해설 먼저 첫 파트에서 for문에서 index를 하나씩 증가시키다 보니, goal이 data안에 일치하였을 때, goal의 길이만큼 i가 건너뛰게 하는 부분을 구현하지 못했다. 그래서 while문을 활용하여 같은 로직이지만, 이 부분을 해결할 수 있었다. #if문이 맞으면, count +=1 후에 문자열을 넘겨줘야됨 #if문이 틀리면, 그대로 for문을 유지 -- 배운점 for문에서 index 번호 컨트롤이 안되면, while 문에 변수 대소비교를 통해서, 변수를 통제할 수 있다! 2022. 4. 1.
[이코테- 문자열 압축][파이썬] 나동빈님 이것이 취업을 위한 코딩 테스트다 p323 --문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, "abcabcdede"와 같은 문자열은 전혀 압축되지 않습니다. "어피치"는 이러.. 2022. 3. 31.
[이코테 - 문자열 재정렬][파이썬] 나동빈님 이것이 취업을 위한 코딩 테스트다 p 322 -- 알파벳과 숫자를 구분해야 하는 문제였기에, ascii_uppercase 모듈을 활용하여 알파벳과 숫자를 구분해 주었다 첫번쨰 for문에서 구별 후, 알파벳 정렬/ 숫자는 int형으로 바꿔서 합을 구하고 문자열로 합쳐주었다. --정답 코드 정답코드에서는 isalpha 라는 내장함수로 알바펫을 구별해 주었고, for문을 좀 더 간단하게 else: 일 떄 바로 문자열을 더해 주었다. 내장함수 + 간결한 코드 작성에 더 신경써보자 2022. 3. 24.
[이코테- 럭키 스트레이트][파이썬] 나동빈님 이것이 취업을 위한 코딩테스트다 p321 --내 코드 --정답 코드 리스트를 2개로 나누어 풀었지만, 풀이코드에서는 + 와 -로 더 간결하게 풀었다 2022. 3. 24.
[이코테- 볼링공 고르기][파이썬] 나동빈님 이것이 취업을 위한 코딩 테스트다 p315 --내 코드 이 블로그 전 게시물과 비슷한 방법으로 순열의 조합을 combinations로 구했고, 중복 값을 제거하고 남아 있는 리스트의 길이로 해결 --정답 코드 2022. 3. 24.
[이코테- 만들 수 없는 금액][파이썬] 나동빈님 이것이 취업을 위한 코딩테스트다 p314 --내 코드 굉장히 길다 순열을 통해 모든 경우의 수를 구해서 각각의 합을 구했고, 합에서 중복되는 for문을 통해 중복값을 제거한 후, 1에서부터 오름차순 정렬된 값을 하나씩 빼면서, 음수가 나오는, 즉 빈 값을 찾는 코드다. --정답 코드 --해설 반면, 저자분의 정답 코드와 같이 간결하게 코딩 할 수 있었다. 2022. 3. 24.