Hackkerank에서 제공하는3달간 코딩 테스트 준비 패키지를 시작해보려고 한다.백준, 프로그래머스에서도 문제를 풀고 있지만, 다양한 ide 환경에서의 준비를 위해, 그리고 기본기를 더욱 충실하게 하기 위해서이다.화이팅@dreamjjw
코드
문제array에 있는 값들을 최대, 최소로 갱신해주면 되는 문제코드
문제코드
문제그냥 리스트를 for문으로 돌면서 리스트에 있는지 없는지판별해주면 된다.코드
문제for문을 돌면서 count함수로 각 원소의 개수를 판별해주면 된다.코드
문제구현만 하면 되는 쉬운 문제였다.첫 번째 조건의 구현은 숫자를 5로 나누어 나머지가 3이거나 4면, 조건을 충족한다. 코드
문제진수 변환하는 문제.파이썬 내장함수 bin으로 2진수로 변환해준다.hex: 6진수oct: 8진수10진수로 다시 변환하는건int(num, 2)으로 해주면 된다.코드
문제코드처음 떠올렸던 풀이법단순히 문자열을 돌면서 "S"나 "O"가 아닌 것을 count하면 어떨까 했지만,SSOSOO처럼 S와 O가 들어가지만 SOS라는 규칙에 어긋나는 케이스가 있을 수도 있어서 기각"SOS" 문자열을 s의 길이 // 3 만큼 배정해주고문자열 s와
문제 코드단순히 2차원 리스트의 양쪽 대각의 합을 구현해주면 되는 문제.절댓값은 abs 함수를 이용하여 구해준다.
문제코드리스트를 for문으로 돌면서 pair(같은 원소가 2개)를 검사하는 문제.새로 생성한 스택에 리스트의 원소들을 넣으면서 이미 동일한 원소가 존재한다면 스택에서 pop한 다음 count를 증가시키면 되는 문제다.
문제인덱스 슬라이싱을 사용하면 아주 쉽게 해결 가능한 문제코드
문제캥거루 1과 캥거루 2가 주어지고, 각각 캥거루는 시작지점 x1, x2와점프 거리 v1, v2가 주어진다.그렇다면 두 캥거루가 경주를 시작 했을 때 같은 지점에 점프하는 (겹치는) 포인트가 있는지 알아보는 문제.다시 생각해보면 결국 공배수가 있냐를 판별하는 문제이다
문제리스트를 완전탐색하면서 원소간의 최소 차이를 갱신해주면 되는 문제코드
문제문자열 s를 돌면서 isAlpha로 알파벳인지 판별, 대문자인지 소문자인지 추가로 판별한 후 알파벳을 바꿔주면 되는 문제.다소 코드가 더러운데, ord와 chr 함수를 사용한다면 좀 더 깔끔하게 개선할 수 있을듯 하다.코드
문제주어진 리스트 arr에서 k만큼의 숫자를 뽑은 뒤 그 숫자들 사이에서 max값과 min값의 차를 구하고, 그 차의 최솟값(unfairness)을 구하는 문제.풀어서 생각해보면, arrk - arri, 즉 k만큼 차에서 unfairness값을 구하면 되는 문제이다.코
문제주어진 조건에 맞게 구현만 하면 되는 문제.나 같은 경우에 정규식을 이용하여 해결하였는데,re.findall을 이용하여 조건에 맞는 리스트가 반환되지 않는다면수정 count를 1씩 증가시켜 주었다.그리고 만약 주어진 패스워드의 길이가 6 미만이라면, 수정사항이 발생
문제비트 연산을 묻는 문제이다.리스트의 모든 요소의 XOR 값을 구하는 문제이므로 리스트의 부분집합을 모두 구한다음 계산할 수도 있지만, 그렇게 한다면 너무 많은 시간이 소요된다.예제에 주어진 리스트 3, 4, 5의 XOR연산을 풀어써본다면3^4^5^(3^4)^(4^5