Algorithm/백준(BOJ)111 [ 파이썬(python) ] 백준 4673 - 셀프 넘버 📍 백준 4673 - 셀프 넘버 백준 4673 - 셀프 넘버 ⚡️ 나의 풀이 문제는 대충 이해됐지만, 막상 코드로 표현하려니까 막막했다. 시작 범위를 어디서부터 잡아야 하는지도 잘 몰랐는데, 많은 고민 끝에 다음과 같은 방법을 생각했다. 생성자가 없는 숫자를 셀프 넘버라고 칭하니까 생성자가 있는 숫자들을 구하고 새로운 리스트에 담아주자. 전체 1 ~ 10000까지의 리스트를 초기화하고, 생성자가 있는 숫자들을 모두 빼면 나머지 값은 모두 셀프넘버가 된다. 문제에 10000보다 작거나 같은 셀프넘버라고 나와있으니까. 종료 범위는 10000이고, 시작 범위는 문제에 양의 정수 n에 대해 계산한다고 나와있으므로 1부터 시작한다. 또, 이와같이 생각했음에도 답이 도출되지 않았는데 원인은 target.append.. 2021. 5. 18. [ 파이썬(python) ] 백준 1977 - 완전 제곱 수 📍 백준 1977 - 완전 제곱수 백준 1977 - 완전 제곱수 ⚡️ 나의 풀이 완전 제곱수를 만들 때는 root만 계산하면 되는 줄 알았는데, 반례가 있기 때문에 다시 제곱을 취해줘야 한다는 것을 처음 알았다. 그리고 root를 취할 때 math.sqrt 대신 i ** 0.5를 하면 간편하게 계산 할 수 있다. (이것도 처음 알았다.) 처음 수를 root를 취하자(i^0.5) (first = int(i \*\* 0.5)) first에 다시 거듭제곱(i^2)을 해준다. (second = first \*\* 2) while문을 사용하지 않아도 된다. 만약, append값이 없으면 ( num == [] )과 같이 사용한다. m = int(input()) n = int(input()) num = [] for .. 2021. 5. 17. [ 파이썬(python) ] 백준 10801 - 카드게임 📍 백준 10801 - 카드게임 백준 10801 - 카드게임 ⚡️ 나의 풀이 어제 풀었던 백준 10214 - Baseball문제와 비교해보면 입력 형태를 제외하고 거의 흡사한 문제였다. 입력받은 A, B 각각의 위치를 대소비교하면 되는데 이럴 때 가장 편하게 사용할 수 있는 zip함수를 이용하자. 다만, zip함수는 서로 리스트의 길이가 다르면 사용 할 수 없다. 이 문제는 리스트의 길이가 서로 같으므로 zip함수를 사용 할 수 있다. 대소 비교 이후 값을 누적하고 마지막에 조건에 따라 출력해주면 된다. A = list(map(int, input().split())) B = list(map(int, input().split())) A_cnt, B_cnt = 0, 0 for A_card, B_card in.. 2021. 5. 14. [ 파이썬(python) ] 백준 2845 - 파티가 끝나고 난 뒤 📍 백준 2845 - 파티가 끝나고 난 뒤 백준 2845 - 파티가 끝나고 난 뒤 ⚡️ 나의 풀이 입력에 사람의 수 * 파티가 열렸던 곳의 넓이를 해주면 전체 넓이를 알 수 있고 해당 값을 예제 입력을 하나씩 빼주면 답이 나온다. 리스트 안에서 각각의 원소들을 빼주는 방법은 lambda함수를 사용하여 간단하게 해결해주고 join 함수를 이용해 괄호를 풀어줬다. people, area = map(int, input().split()) news_paper = list(map(int, input().split())) gap_news_paper = list(map(lambda x: x - (people*area), news_paper)) print(' '.join(map(str, gap_news_paper))) 2021. 5. 14. [ 파이썬(python) ] 백준 10214 - Baseball 📍 백준 10214 - Baseball 백준 10214 - Baseball ⚡️ 나의 풀이 이 문제를 처음에 보고 이해가 명확히 안 됐었다. 그러니까.. 테스트 케이스마다 값을 비교해서 출력하라는 건가? 아니면 출력이 잘못 나왔나? 생각했는데 결론적으로 각 테스트 케이스마다 9번의 값을 각각 비교하여 더 많이 누적된 cnt값을 출력하는 문제였다... 내가 독해 능력이 낮은건가.. 라고 생각했다. 각각의 테스트 케이스마다 누적할 값 cnt를 선언한다. 이중 반복문으로 T번의 테스트 케이스 안에 9번의 입력을 받을 때 변수를 선언한다. 안에 있는 반복문을 도는 동안 값을 비교하여 Ycnt, Kcnt에 누적시킨다. 한번의 테스트 케이스가 끝날 때마다 누가 더 큰지 비교하여 값을 출력한다. T = int(inp.. 2021. 5. 13. 이전 1 ··· 10 11 12 13 14 15 16 ··· 23 다음