본문 바로가기
728x90
반응형

코딩/알고리즘

[ 구글 코드잼 예선 ] Google Code Jam 2022 Qualification Round 리뷰 구글 코드잼 예선 Google Code Jam 2022 Qualification Round 리뷰 요즘 바쁘긴 하지만 코드잼은 빼먹을 수 없었다. 과거 작년 , 재작년 코드잼을 신청해놓고 그냥 놀아버려 도전도 하지 못했던 과거를 생각해 이번에는 신청한 김에 꼭 참여해보기로 했다. Atcoder도 가끔 하고 , 백준도 요즘 건드리지 않고 있는데 머리에 알고리즘 불씨를 살려주기에 정기적인 공부만 한 게 없다. 가벼운 마음으로 공부한다 생각하고 도전해보았다. 구글 코드잼은 예선 통과만 하려면 30점 이상만 하면 되는 걸로 기억한다. 아마 앞의 3문제 A, B, C 문제만 맞혀도 자동 예선 통과로 알고 있다. 다음 라운드의 경우는 시험기간이라 도전하지 않을 생각이다. 어차피 그 이상의 의미있는 대단한 성적을 내는.. 더보기
[SW Expert Academy] 12369. 일련번호 붙이기 SW Expert Academy 12369 문제 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 사용할 알파벳이 주어지고 숫자가 주어질 때 , 사전 순으로 해당 숫자 번째의 문자열을 출력하면 되는 문제다. 각 자릿수에 들어갈 알파벳을 이전까지의 번호를 보고 정해 최종적으로 합쳐 출력한다. 예를 들어 , AB 12의 경우 12는 < 2 + 4 + 8 이므로 3자리 단어다. 3자리 단어 이전 까지의 경우는 6 이므로 12 - 6 = 6 즉 3자리 단어만 놓고 보았을 때 6번째 단어다. 6번째 단어의 첫번째 자리는 (6-1) // 4 ( 2자리 경우의 수 ) = 1 이므로 알파벳 순서 배열에서 1번인 B가.. 더보기
[SW Expert Academy] 11736. 평범한 숫자 SW Expert Academy 11736 문제 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 숫자 배열에서 좌우를 비교했을 때 , 가장 큰 값이 아니거나 작은 값이 아니면 그 수를 평범한 숫자라 한다. 배열에서 이러한 평범한 숫자가 얼마나 있는지 찾는 문제이다. 간단하게 배열 인덱스를 옮겨 가면서 좌우를 비교하고 답을 내면 된다. n = int(input()) for i in range(n): k = int(input()) s = list(map(int, input().split(" "))) ans = 0 for t in range(1,len(s)-1): if s[t] != max(s[t],s[t.. 더보기
[SW Expert Academy] 12221. 구구단2 SW Expert Academy 12221 문제 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 두 수를 입력받아 곱할 때 , 두 수중 하나라도 10을 넘으면 -1을 출력하는 문제이다. 문제 자체는 매우 쉬운데 풀고 나서 난이도를 보니 D3이라 놀랐다. 난이도 체계를 아직 이해 못 한 건지 , 헷갈린다. 백준으로 치면 브론즈 문제 일텐데 난이도를 좀 내려야 하지 않나 싶다. n = int(input()) for i in range(n): a,b = map(int,input().split(" ")) if a > 9 or b > 9: print("#%d -1" %(i+1)) else: print("#%d.. 더보기
[SW Expert Academy] 2005. 파스칼의 삼각형 SW Expert Academy 2005 문제 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 단순하게 N=1 ~ 10 인 파스칼의 삼각형을 출력하는 문제이다. 조합으로 풀어도 되고 , 파스칼의 삼각형을 직접 만들어 풀어도 되는 문제이다. 이번 풀이의 경우 파스칼의 삼각형 2차원 배열을 만들고 N=10 인 경우의 삼각형을 만든 후 , 원하는 범위까지 출력하도록 하였다. 관련된 백준 문제로는 2407번 조합 문제가 있다. 알고리즘 - Python / 백준 - 2407번 : 조합 (tistory.com) 알고리즘 - Python / 백준 - 2407번 : 조합 2407번: 조합 (acmicpc.net) .. 더보기
[SW Expert Academy] 1859. 백만 장자 프로젝트 SW Expert Academy 1859 문제 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 전체 경우의 매매가를 안다고 가정하였을 때 , 싸게 사서 비싸게 팔아 얻을 수 있는 최대 이익을 구하는 문제이다. 단순하게 가격을 뒤에서부터 읽으면서 max 값을 저장해놓고 , max값보다 싸면 그 max - 가격만큼 이익을 얻고 , max값보다 크다면 max값을 업데이트하면 된다. 코딩 테스트 스타일의 문제다 보니 10개의 테스트 케이스에 대해 30초를 제공한다. 단순히 따져보아도 1개의 테스트 케이스에 3초 걸리면 되니 , 시간은 여유 있는 편이다. 최대 1,000,000개의 입력이 주어지길래 당연히 s.. 더보기
[SW Expert Academy] 2072. 홀수만 더하기 SW Expert Academy 2072 문제 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 테스트 케이스 수를 입력받고 단순하게 10개의 숫자중 홀수만 더해 출력하는 문제이다. 단순하게 입력 받고 , 조건에따라 출력하면 되는 문제다. n=int(input()) for k in range(n): s = list(map(int , input().split(" "))) ans = 0 for i in s: if i%2 == 1: ans += i print("#%d %d" %(k+1,ans)) 더보기
반응형