0. 포스팅 작성 이유 파이썬에서 "hello world"라는 문자열에서 특정 문자 "w" 존재 여부를 확인하려고 할 때 find() 메서드와 in 연산자를 모두 사용할 수 있습니다. 그렇다면 동일한 기능을 수행하는 메서드와 연산자가 모두 존재하는 이유가 무엇일까? 무슨 차이가 있어서 2개가 모두 존재하는 것일까, 찾아보았습니다. 1. find() 메서드와 in 연산자 반환값 종류 반환값 find( ) 문자가 존재하면 해당 문자의 인덱스 / 없으면 -1 in 문자가 존재하면 True / 없으면 False find( )는 특정 문자의 인덱스 값이 필요할 때, in 연산자는 단순히 특정 문자가 존재하는지만 확인할 때 사용하기 적합합니다. 물론 특정 문자의 존재 여부도 find( )로 파악할 수 있지만, in..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제 내용 2. 접근 방식 접근1: 최대 이익을 내기 위해선 오늘 산 물건의 가격보다 다음 날 가격이 더 높아야 한다. 따라서 10 7 6의 경우 날이 지날수록 가격이 떨어지기 때문에 애초에 구매하지 않아야 최대 수익 0을 낼 수 있다. 그렇다면 3 5 9의 경우는 어떨까? 3보다 5가 더 높기 때문에 바로 5에 팔아버리면 그 다음 날 9로 팔 수 있는 기회가 사라진다. 즉, 무작정 오늘에 비해 내일 가격이 더 비싸다고 팔면 최대 이익을 얻을 수 없다. 접근2: 매일 1개씩 사다가, 전체에서 가장 비싼 가격일 때 팔아야 한다. 1 1 3 1 2에서 가장 비싼..
교재에 서술된 정답 코드가 아닌, 제가 직접 작성한 코드입니다. n = int(input()) steps = list(input().split()) move = { 'L': (0, -1), 'R': (0, 1), 'U': (-1, 0), 'D': (1, 0) } x, y = 1, 1 for step in steps : xd, xy = move[step][0], move[step][1] x += xd y += xy if x == 0 : x = 1 elif x == n + 1 : x = n elif y == 0 : y = 1 elif y == n + 1 : y = n print(x, y) 개선된 버전 n = int(input()) steps = list(input().split()) move = { 'L':..
https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net 1. 문제 2. 정답 코드 import sys n = int(input()) data = [] for _ in range(n) : data.append(int(sys.stdin.readline())) data.sort() # 오름차순 정렬 unhappy = [abs(x - (i+1)) for i, x in enumerate(data) ] answer = sum(unhappy) print(answer) 최..