티스토리

SIA's
검색하기

블로그 홈

SIA's

sia-s.tistory.com/m

SI-AH 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • [백준/Python]14719 빗물 ' 벽과 벽 사이의 빈 공간에는 무조건 빗물이 채워질 수 있다 '는 아이디어로 작성하게 된 코드이다 2차원 세계에 블록이 쌓여있는 것을 표현한 world 라는 2차원 리스트를 만들었고, 한 줄 씩 돌면서 빗물이 채워질 수 있는 공간의 크기를 구했다 H, W = map(int, input().split()) block = [int(i) for i in input().split()] world = [[0] * W for _ in range(H)] for i in range(W): for j in range(block[i]): world[j][i]= 1 answer = 0 for i in range(H): start = False water = 0 for j in range(W): if world[i][j] .. 공감수 0 댓글수 1 2023. 6. 17.
  • [Programmers/Python] 이모티콘 할인행사 프로그래머스 문제 간단히 생각하기 1. 할인율은 10%, 20%, 30%, 40% 이고, 2. 사용자는 각각 '최소 할인율'과 '최대 구매 가능 금액' 을 가지고 있습니다. 3. 사용자는 이모티콘를 구매하거나, 이모티콘 플러스에 가입할 수 있는데, 4. 3번에 대한 기준은, '최소 할인율' 이상의 할인율을 적용시켜 구매한 이모티콘의 가격이 4-1. '최대 구매 가능 금액' 미만인 경우, 이모티콘 구매하고, 4-2. '최대 구매 가능 금액' 이상인 경우, 이모티콘 플러스 가입 5. 이모티콘 플러스 가입자가 최대인 경우 중, 판매액을 최대로 하는 경우의 이모티콘플러스 가입자수와 판매액을 출력 해야할 일 1. 각 이모티콘에 대해 적용할 할인율의 경우의 수를 구합니다. 2. 각 할인율을.. 공감수 0 댓글수 0 2023. 6. 16.
  • [Programmers/Python] 신규 아이디 추천 프로그래머스 Lv1.인만큼 어렵지 않은 문제였고, 문제에 주어진 단계를 그대로 구현하면 되는 문제였다. def solution(new_id): answer = '' # 1단계 new_id = new_id.lower() # 2단계 for id in new_id: if id.isalpha() or id.isdigit() or id in '-_.': answer += id # 3단계 while '..' in answer: answer = answer.replace('..', '.') # 4단계 if answer[0] == '.' and len(answer)>1: answer = answer[1:] if answer[-1] == '.': answer = answer[:-1] # 5단계 .. 공감수 0 댓글수 0 2023. 6. 15.
  • [백준/Python] 1205 등수 구하기 구현은 쉽게 했는데, 계속 틀렸다고 나옴;;; 아직도 뭐가 문제인지 모르겠어서 구글링 했다.... 에휴.........; 그리고 처음에 비오름차순이 내림차순이라는 뜻인지 아님 sorting이 안되어 있다는 뜻인지 헷갈렸다;; n, s, p = map(int, input().split()) if n == 0: print(1) else: scores = [int(i) for i in input().split()] if n == p and scores[-1] >= s: print(-1) else: rank = n + 1 for i in range(n): if scores[i] 공감수 0 댓글수 0 2023. 6. 15.
  • [백준/Python] 20055 컨베이어 벨트 위의 로봇 ※ 이 풀이법은 PyPy3으로 통과된 방법으로, Python3으로는 '시간 초과'가 뜨는 코드입니다 개인적인 "구현 연습"을 위해 외부 라이브러리 사용 없이 빡구현 한 코드입니다. deque의 rotate를 사용하면 회전하는 컨베이어 벨트를 바로 만들 수 있었겠지만, 구현 연습을 위해 직접 구현했다. 또한 0의 개수를 셀 때도, count 함수를 사용하지 않고 직접 구현했다. 문제에서 주어진 컨베이어 벨트 작동 순서는 크게 3가지로, 1. 회전하고 2. 이동하고 3. 올린다 를 내구도의 0 개수가 K개 이상이 될 때까지 반복 라고 생각할 수 있다. 위의 세 과정을 모두 지나야 한 단계를 지났다고 생각한다. 따라서, 회전 / 이동 / 올림 을 각각 구현하고, 내구도 0의 개수를 세는 과정을 순서대로 구현했.. 공감수 0 댓글수 0 2023. 6. 14.
  • [백준/Python] 20006 랭킹전 대기열 특별한 알고리즘 없이 써있는 대로 구현하는 문제이다. 고려해야할 부분은 두 가지라고 생각하는데 1. 입력된 순서대로 게임을 시작한다 → for문으로 입력으로 차례로 받아서 바로바로 방에 넣어줘야함 2. 닉네임은 사전 순으로 출력된다 → 마지막에 sorting 해주기 1번 때문에 모든 입력을 한 번에 받은 후 레벨을 기준으로 정렬해 m명 씩 나눠 출력할 수 없다는 뜻이다. 그렇다면 어떻게 문제를 간단히 생각할 수 있을까? 핵심 아이디어는 다음과 같다. 처음 방에 들어간 사람의 레벨과 비교해 -10 공감수 0 댓글수 1 2023. 6. 13.
  • [백준/Python] 2852 NBA 농구 처음에 생각을 잘못 해서 틀려서 두 번째 시도에서 성공했다. 처음에 생각하지 못한 경우는 팀1이 우세하다가 팀2가 우세하고 다시 팀1이 우세하면서 엎치락 뒤치락할 수 있다는 것을 생각 못했다. 예제에 나와있는 한 팀이 우세한 뒤 다른 한 팀이 우세하면 끝난다고 생각해서 여러번의 '이기는 시간'의 누적을 구할 수 없었다 그래서 작성했던 모든 코드를 지우고 다시 코드를 작성하기 시작했는데, 처음에는 시간을 mm:ss 형태로 계산했던 것이 너무 복잡해서 그냥 다 초로 바꾼 뒤에 마지막에 누적 시간을 다시 주어진 형식(mm:ss)으로 바꿔주었다. 고려해야할 사항은 1) 각 팀의 점수(이기고 있는 팀의 시간을 누적) 2) 팀 각각의 누적시간을 구함 이라고 생각했고, 나는 이 문제를 "지금 어떤 팀이 이기고 있는지.. 공감수 0 댓글수 0 2023. 6. 12.
  • [백준/Python] 1224 스위치 켜고 끄기 너무 잘 풀었는데 자꾸 '틀렸다'고 나와서 너무 마음이 아팠다.. 대략적인 구현은 쉬워서 한번에 술술 적었는데, 예외 처리 해줘야하는 부분을 못 찾아서 계속 틀림....ㅜ 문제에서 대놓고 말해주지 않는 예외를 찾는 것은 아직 너무 어렵다;ㅅ; (맞았습니다 많은 건, 함수로 풀어보고 싶어서 이것 저것 시도한 흔적입니다,,~) 일단 문제를 간단히 요약하면, 남자 → n 배수 스위치 누르기 여자 → 대칭: 5개 모두 스위치 누르기 → 비대칭: n만 스위치 누르기 이렇게 간단하게 요약할 수 있다. def boy(n): for i in range(1, (N // n) + 1): if switch[(n * i) - 1] == 1: switch[(n * i) - 1] = 0 else: switch[(n * i) - .. 공감수 0 댓글수 0 2023. 6. 10.
  • [백준/Python] 1138 한 줄로 서기 처음에 생각했던 방법은 처음 나온 0의 인덱스를 제일 처음에 놓고, 그 다시 people을 처음부터 끝까지 돌면서 자기보다 작은 숫자가 몇개 있나 세서, 그 수랑 people에 있는 수가 같은 수의 인덱스를 두번째에 놓고··· 하는 방법이었는데, 뭔소린지 모르시겠죠? 당연함.. 나도 모르겠음ㅠ 암튼 그래서 인덱스랑 자기보다 큰 사람이 왼쪽에 몇명있는지를 dictionary로 해서 해보려고 했어요,, 근데 아무리 생각해도 계속 비교하느라고 for문을 돌면 너무 시간이 오래 걸릴 거 같은 거에요 그래서 막 이진탐색을 해? 그럼 sorting을 해야돼? 이렇게까지? 이러면서 삽질 오지게 하다가 결국 구글링을 했어요^^ 3시간만에^^ 진짜 혼자 풀어보고 싶었는데......^^ㅎ; 대략적인 아이디어는 앞 번호부터.. 공감수 0 댓글수 2 2023. 6. 9.
  • [백준/Python] 1475 방 번호 처음에 세트를 어떻게 세야할까 생각하는게 어려웠다.. 그냥 한 번에 생각났으면 바로 풀 수 있는 문젠데, 자꾸 어렵게 생각하다보니까 이상한 곳에서 쓸 데 없이 시간을 많이 쓴 기분...ㅠ check = [0] * 10 for i in input(): check[int(i)] += 1 sn = check[6] + check[9] if sn % 2 == 0: check[6], check[9] = sn // 2, sn // 2 else: check[6], check[9] = sn // 2 + 1, sn // 2 + 1 print(max(check)) 풀이과정 1. 0이 10개 있는 check라는 배열을 만들기 2. 방 번호를 하나씩 받아서 해당하는 배열에 +1 ( ex_방번호가 678이라면, check[6],.. 공감수 0 댓글수 0 2023. 6. 7.
  • [백준/Python] 14503 로봇청소기 전형적인 구현 문제이다. 문제에서 주어진 풀이 과정을 따라가며 풀면 된다. 방의 구조가 주어지고, 특정 위치에서 동서남북을 비교해가며 푸는 문제이므로 BFS를 활용해 구현했다. 반시계 방향으로 돌리는 걸 어떻게 구현해야할지 고민을 많이 했는데, 북(0)->서(3) / 서(3)->남(2) / 남(2)->동(1) / 동(1)->북(0) 임을 고려해 (d+3) % 4라는 식을 만들어냈다. N, M = map(int, input().split()) i, j, d = map(int, input().split()) room = [list(map(int, input().split())) for _ in range(N)] visited = [[0]*M for _ in range(N)] # 1. 현재 칸이 아직 청소되지.. 공감수 0 댓글수 0 2023. 6. 5.
  • [백준/Python] 2563 색종이 처음에 한 변의 길이가 100인 도화지를 만들어야겠다는 생각을 하는게 제일 어려웠고, 그 다음부터는 크게 어려운 것이 없었다. 생각했던 방향은 1. 큰 도화지를 만들고(0으로 100X100 배열을 만듦) 2. 만든 도화지에 색종이들을 붙임(색종이가 붙는 위치를 1로 바꿈) 3. 색종이가 중복해서 붙는 부분의 넓이를 뺌 N = int(input()) result = N * 100 locations = [[0] * 101 for _ in range(101)] for _ in range(N): x, y = map(int, input().split()) for i in range(10): for j in range(10): if locations[x+i][y+j] != 1: locations[x+i][y+j] .. 공감수 0 댓글수 0 2023. 6. 2.
  • [백준/Python] 2167 2차원 배열의 합 ※ Python3으로 시간초과 뜨지 않고 푸는 법은 아래에 정리해두었습니다! python3으로 했을 땐 시간초과가 떠서 PyPy3으로 돌렸더니 성공했다. 이중 for문 때문에 그런 거 같긴 한데, python3으로도 성공할 수 있는 방법을 찾으면 업데이트 하겠음.. 처음에는 (1, 1)부터 (2, 3) 까지 더한다고 할 때, (1, 1) + (1, 2) + (1, 3) + (2, 1) + (2, 2) + (2, 3) 인 줄 알았는데, (1, 1) + (2, 1) + (1,2) + (2, 2) + (1, 3) + (2, 3) 순으로 더해야 한다!!!!!!!! 그래서 while문 안에서 이중 for문을 돌릴 때, lst[x][y]에서 첫번째 for문은 y를, 두번째 for문은 x를 증가시켜야함 from co.. 공감수 0 댓글수 0 2023. 6. 1.
  • [백준/Python] 2504 괄호의 값 괄호 문제.. stack으로 top과 현재 괄호를 비교해 짝을 이루는 괄호면 pop하고, 짝을 이루지 않으면 append하여 올바른 괄호열인지 구분하는 아주 기본적인 풀이가 있다. 이 풀이법을 응용하여 문제를 풀었는데, 중간중간에 곱하고 더하는 것을 어떤식으로 해야할지 고민을 하며 문제를 풀었다. s = list(input()) stack = [] answer = 1 # 올바른 괄호열의 각 값을 계산 result = 0 # answer로 얻은 값들을 더해 정답을 담는 변수 # 1,2번은 괄호가 열릴 때 각각 2 또는 3을 곱해줌 # 3,4번은 괄호가 닫힐 때, answer에 있는 값을 result에 더한 뒤, 2 또는 3을 나눠주어 값을 원래대로 되돌림 # 만약 올바른 괄호열이 아닐 경우, 0으로!! f.. 공감수 0 댓글수 0 2023. 5. 30.
  • [백준/Python] 14891 톱니바퀴 아... 문제가 너무 어려웠다;ㅅ; 혼자 풀어보다가 코드 100줄 넘어가는 거 보고, 안되겠다 싶어서 구글링 했는데 사실 아직도 100% 이해하진 못한 거 같음.... 다시 혼자 풀어보라고 하면 못 풀 거 같다;ㅅ; 그래서 오늘 설명은 약간 읽으면서도 뭔소린가 싶을 수 있습니다.. 그치만 최대한 자세히 써보겠습니다.....!! 일단 이 문제에서 가장 중요한 건 재귀함수인 것 같고, deque를 사용한 이유는, 톱니바퀴를 시계/반시계 방향으로 회전할 때, 양 끝 값을 넣고 빼야했기 때문에 이에 용이한 deque를 사용함!!! from collections import deque # 시계 방향으로 회전 def clock(g, c): # 기준 톱니바퀴 오른쪽에 있는 톱니바퀴가 톨아가는지 안돌아가는지 확인 if.. 공감수 0 댓글수 0 2023. 5. 28.
  • [백준/Python] 2941 크로아티아 알파벳 처음에는 아예 다른 방식으로 접근해서 아주 어렵게 풀었는데, 다 풀고나서 다른 사람들의 풀이를 보니까 내가 얼마나 비효율적으로 코드를 짰는지 느껴졌다...... 다섯줄이면 될 문제를 35줄로 품..... 이 코드는 아래에 올려보겠어요... n = input() croatiaAlpha = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] for i in croatiaAlpha: n = n.replace(i, '!') print(len(n)) 풀이과정 1. 크로아티아 알파벳을 따로 리스트에 넣고, 2. 입력 받은 문자열 중에 크로아티아알파벳 리스트에 있다면 replace로 '!'로 바꾸고, 3. 나중에 입력 받은 문자열의 길이를 출력 열심히 삽질한 코드(맞았다고 뜨긴함.. 공감수 0 댓글수 0 2023. 5. 26.
  • [백준/Python] 11559 Puyo Puyo 문제를 보고 어떻게 구현할 지 생각을 하며 1. 같은 색 뿌요가 모여있는 걸 확인 2. 그 뿌요들을 터뜨리기 3. 중력 역할을 하는 장치 만들기 1~3의 작은 세 부분으로 나눴는데 이 중 제일 어려웠던 건 3번..이었다 1번은 상하좌우 비교하다가 같으면 또 그 자리에서 상하좌우 비교하고, 하는 걸 반복해야하므로 BFS를 사용해야겠다고 생각했고, 2번은 해당하는 자리를 다 '.'로 바꾸면 되니까 크게 어렵지 않을 것이라고 생각했는데, 3번은 도저히 어떻게 해야할지 생각하기가 어려웠다. 중력의 영향을 받는 건 상하 방향인데, 처음 필드를 입력받을 때 좌우 방향으로 리스트를 만들어서 받으니까 어떻게 구현해야할지 막막했다 찾은 해결 방법은 gameMap[3][0]에서 한 칸 떨어지면 gameMap[4][0]으로.. 공감수 0 댓글수 1 2023. 5. 25.
  • [백준/Python] 3568 iSharp 처음에 틀렸어서 너무 야매로 빡구현을 해서 그런가..? 했는데, 그게 아니라 변수명이 문자 여러개로 이루어져있을 때를 생각 못했어서 틀린 거였다. 그래서 alphabet이라는 변수를 만들어서 해결~ 구현하기 전에 세운 로직은 1. 띄어쓰기 기준으로 나눠서 res에 isharp[0]을 넣고 나중에 맨 앞에 붙여야지(기본 변수형) 2. 한 변수 당 알파벳이 아니면 리스트에 append → [ ] 처리 잘 해주기 3. 알파벳이면 변수명이 문자 여러개로 이루어져 있을 때도 하나의 변수로 처리될 수 있도록 함 4. 리스트의 순서를 뒤집어 5. 순서대로 출력 → 맨 뒤에 ';'까지!!!! 이 정도! 근데 진짜 차례대로 구현하니까 잘 통과 됐다!!!!!!!!! # 한 변수에 대한 변수 선언문 생성하는 함수 def s.. 공감수 0 댓글수 0 2023. 5. 24.
  • [백준/Python] 14502 연구소 2023.05.19 - [코테연습문제] - [백준/Python] 15686 치킨 배달 [백준/Python] 15686 치킨 배달 최대 M개를 고른다고 해서 처음에는 내가 최대 M개를 선택할 수 있다는 뜻인 줄 알고 그럼 1개, 2개, 3개,···M개 이렇게 다 나눠서 생각을 해야되는건가?! 하고 조금 많이 어렵게 생각했지만, 그게 sia-s.tistory.com 처음 문제를 봤을 때, 바로 BFS를 떠올린 건 아니다 처음 떠올렸던 생각은 저번에 풀었던 "치킨 배달"이 생각났다 치킨집과 집의 위치를 따로따로 저장해놓고, 치킨집을 N개 선택할 수 있는 모든 경우의 수를 조합으로 구해서 풀었던 문제였는데, 이 연구소 문제도 비슷한 방법으로 풀었다(대충 조합 썼다는 뜻ㅋㅋㅋ) 대충 내가 생각한 풀이법은 1. 바.. 공감수 0 댓글수 0 2023. 5. 22.
  • [백준/Python] 16234 인구 이동 예제4, 5를 이해하는 데에 시간이 좀 오래 걸렸다.. 아래는 이해한 예제4, 5를 정리해놓은 그림이다. 예제를 이해하고 코드를 작성하기 전에 했던 생각은, 1. 현재 국가(위치)를 기준으로 상하좌우 주변국들과의 인구수를 비교해야하니까 BFS를 사용하면 좋겠다 2. 그러면 인접한 나라들과의 인구수 비교를 해 연합국이 될 수 있는지를 확인할 수 있는 함수를 만들어야겠다 3. 연합국이 여러 개 일 수 있으니까, visited로 방문여부를 확인할 수 있어야겠다 4. 연합국들과의 인구조정이 된 후의 인구수로 상태를 계속 update해줘야겠다. 이정도였고, 코드를 작성하기 시작했다 from collections import deque dx = [0, 0, 1, -1] # 상하좌우 dy = [1, -1, 0, 0].. 공감수 0 댓글수 0 2023. 5. 20.
  • [백준/Python] 15686 치킨 배달 최대 M개를 고른다고 해서 처음에는 내가 최대 M개를 선택할 수 있다는 뜻인 줄 알고 그럼 1개, 2개, 3개,···M개 이렇게 다 나눠서 생각을 해야되는건가?! 하고 조금 많이 어렵게 생각했지만, 그게 아니었다는 것을 깨달았다!!!!!!(는 1시간 걸림; 원래 하나에 꽂히면 그 생각에서 벗어나는 데 좀 오래 걸리는 편입니다... 암튼 그게 아니라는 걸 깨닫고 한 생각은 1. M개로 combination을 해야겠다! 2. 그러면 치킨집의 위치만 따로 모아둬야겠구나! 3. 어차피 집에서의 거리를 구해야하니까 집이랑 치킨집의 위치를 따로따로 모아야겠다! 이정도였구요, 그래서 코드를 작성하기 시작했습니다~ import itertools N, M = map(int, input().split()) cityMap .. 공감수 0 댓글수 1 2023. 5. 19.
  • [백준/Python] 5430 AC 문제만 봤을 때는 너무 간단해보여서 골드 문제도 척척 풀어내는 나, 어쩌면 성장했을지도?! 라고 생각하면서 아이패드에 어떤식으로 풀지 정리도 안하고 바로 코드를 술술 적어내려갔는데...... 그럼 그렇지, 시간초과^^ 1. 시간 초과 코드 & 설명 T = int(input()) for _ in range(T): operations = [] x = [] for i in (input()): operations.append(i) n = int(input()) for i in (input()): if i.isdigit(): x.append(int(i)) for p in operations: if p == 'R': x = x[::-1] elif p == 'D': if len(x) == 0: break else: .. 공감수 0 댓글수 0 2023. 5. 16.
  • [Programmers/Python] 주차 요금 계산 def solution(fees, records): nRecords = [] answer = [] carNumber = set() for r in records: nRecords.append(r.split()) # 시간은 분 단위로 계산 & 차량 번호만 for r in nRecords: a, b = r[0].split(':') a, b = int(a), int(b) r[0] = a*60 + b carNumber.add(r[1]) # 차량 번호가 작은 자동차부터 청구할 주차 요금을 return carNumber = sorted(carNumber) # 차량 번호별로 stack을 만들고, IN/OUT에 따라 push(append)/pop을 해준다 for n in carNumber: stack = [] minu.. 공감수 0 댓글수 0 2023. 5. 15.
  • [백준/Python] 1654 랜선 자르기 K, N = list(map(int, input().split())) lan = [] for _ in range(K): lan.append(int(input())) left, right = 1, max(lan) while left = N: left = mid + 1 else: right = mid - 1 print(right) 유의했던 사항 1. 이분탐색을 사용한다 → 그러지 않으면 시간초과됨 풀이과정 1. left를 1, right를 max(lan)으로 설정 2. mid를 길이로 하여 각 랜선을 나눴을 때, 몇 개의 잘린 랜선이 생기는지 구함(cnt) 3. cnt와 N을 비교해서, cnt가 크면 left = mid -1, N이 크면 right = mid + 1 알게 된 것 1. 이분탐색 (Binary .. 공감수 0 댓글수 0 2023. 5. 8.
  • [백준/Python] 7568 덩치 유의했던 사항 1. 키와 몸무게가 모두 크거나 작을 때만 덩치의 대소를 구분할 수 있음 2. 덩치 등수는 자신보다 덩치가 큰 사람의 수 + 1 풀이과정 1. 리스트를 만들어 각각의 몸무게의 키를 하나의 맵으로 만들어 append 2. 처음엔 A를 기준으로 해 덩치가 큰 사람의 수를 센다 → cnt += 1 3. A보다 덩치가 큰 사람의 수(cnt)를 출력 4. 2~3 과정을 반복해 모든 사람을 기준으로 덩치 등수를 따져보고 출력 -) 각각의 키와 몸무게를 어떻게 비교해아할지 고민하다가 itertools.permutations()를 써보려고 했는데, 각 사람 기준으로 덩치 등수를 각각 알아야하므로 사용 x 공감수 0 댓글수 0 2023. 5. 6.
  • [백준/Python] 2292 벌집 시간 초과 코드(PyPy3으로 돌리면 성공) N = int(input()) cnt, rooms = 1, 1 for i in range(int(N // 6) + 1): rooms += 6*i if rooms < N: cnt += 1 print(cnt) 성공한 코드 N = int(input()) cnt, rooms = 1, 1 while rooms < N: rooms += 6 * cnt cnt += 1 print(cnt) 풀이과정 1. 각 층에는 벌집이 1개, 6개, 12개, 18개···씩 있다 → 방 주소는 1, ~7(1+6), ~19(1+6+12), ~37(1+6+12+18)··· 2. 1층은 최소 1개, 2층은 최소 2개, 3층은 최소 3개, 4층은 최소 4개···의 방을 지나가야 한다 2-1. 주어진.. 공감수 0 댓글수 0 2023. 5. 6.
  • [백준/Python] 10814 나이순 정렬 N = int(input()) person = [] for _ in range(N): person.append(input().split()) sortedP = sorted(person, key=lambda x: int(x[0])) for p in sortedP: print(p[0], p[1]) 풀이과정 1. 리스트에 온라인 저지 회원의 나이와 이름을 입력받음 2. 리스트를 나이를 기준으로 정렬 3. 순서대로 출력 알게 된 것 1. 람다식 # 튜플의 첫 번째 값을 기준으로 정렬 sortedP = sorted(person, key=lambda x: x[0]) # 튜플의 두 번째 값을 기준으로 정렬 sortedP = sorted(person, key=lambda x: x[1]) 람다식을 이용하면 여러가지 요소.. 공감수 0 댓글수 0 2023. 5. 5.
  • [백준/Python] 1436 영화감독 숌 N = int(input()) cnt, devilNum = 0, 666 while True: if '666' in str(devilNum): cnt += 1 if cnt == N: print(devilNum) break devilNum += 1 풀이과정 1. While문으로 666부터 1씩 늘리면서 '666'이 있으면 cnt를 1씩 증가시킴 2. cnt와 N이 같아지면 그 숫자를 출력하고 break 처음 풀었던 방법 - 시간이 엄청 오래 걸림..ㅜ N = int(input()) cnt = 0 for i in range(666, 10000000): if '666' in str(i): cnt += 1 if cnt == N: print(i) 공감수 0 댓글수 0 2023. 5. 5.
  • [백준/Python] 2751 수 정렬하기2 import sys N = int(sys.stdin.readline()) num = [] for _ in range(N): num.append(int(sys.stdin.readline())) num.sort() for n in num: print(n) 풀이과정 1. num이라는 리스트에 입력 받아서 sort로 정렬 후 출력 너무 간단한 문제인데 처음에 import sys 안했더니 시간초과 떴다.. 공감수 0 댓글수 0 2023. 5. 5.
  • [백준/Python]1181 단어정렬 N = int(input()) wordSet = set() # 중복되는 단어는 하나만 남기고 제거 for _ in range(N): wordSet.add(input()) # 사전 순 정렬 sortedWord = sorted(wordSet) # 길이로 정렬 sortedWord.sort(key=len) for w in sortedWord: print(w) 유의 했던 사항 1. 중복되는 단어는 제거 후 하나만 남김 → set() 사용 풀이과정 1. set으로 중복 없는 단어 set을 입력받음 2. sorted로 사전 순 정렬 3. key = len으로 단어들을 길이 기준으로 정렬 4. for문으로 단어 하나씩 출력 알게 된 것 1. key=len 리스트 요소를 길이 순으로 정렬할 때는 sort메소드에서 key.. 공감수 0 댓글수 0 2023. 5. 4.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.