SWEA
-
[D3] SWEA 2805. 농작물 수확하기SWEA 2024. 5. 1. 20:02
1. 접근 방식2가지 방법이 있다.(1) (s,e) 범위만큼 탐색s=e=n//2이고is-=1e+=1i>=n//2이면s+=1e-=1해주는 방식(2) 규칙성을 찾는 방식n=5i=0 j=m-0 ~ m+0 (m-i ~ m+i)i=1 j=m-1 ~ m+1 (m-i ~ m+i)i=2 j=m-2 ~ m+2 (m-i ~ m+i)i=3 j=m-1 ~ m+1 (m-(n-1)-i ~ m+(n-1)-i )i=4 j=m-0 ~ m+0 (m-(n-1)-i ~ m+(n-1)-i ) 2. 디테일한 구현범위값 대로 구현해주면 된다. 3. 코드 구현12345678910111213141516171819202122232425262728293031if __name__=='__main__': # sys.stdin=open('input2.t..
-
[D3] SWEA 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드SWEA 2024. 5. 1. 17:32
1. 접근 방식암호들은 무조건 1로 끝난다.암호는 7글자*8개=총 56글자다열의 끝에서부터 탐색해서1이 발견되면 ( 1이 발견된 인덱스- 55 ~ 1이 발견된 인덱스 )까지 가져오면 된다.그리고 7글자씩 자르면 된다. 2. 디테일한 구현접근 방식대로 코드를 짜면 된다. 3. 코드 구현1234567891011121314151617181920212223242526272829303132333435363738394041424344if __name__=='__main__': sys.stdin=open('input2.txt','r') test_case=int(input()) ## 총 테스트 케이스 개수 for tc in range(test_case): n,m=ma..
-
[D3] SWEA 1209. [S/W 문제해결 기본] 2일차 - SumSWEA 2024. 5. 1. 13:45
1. 접근 방식i=0~100, j=0~100res+=s[i][j] ##각 행에 대한 원소들의 누적합res+=s[j][j] ##각 열에 대한 원소들의 누적합i=0~100res+=s[i][i] ##대각선에 대한 원소들의 누적합res+=s[i][100-1-i] ##대각선에 대한 원소들의 누적합 2. 디테일한 구현위의 식대로 구현해주면 된다. 3. 코드 구현123456789101112131415161718192021222324252627282930313233343536373839404142434445if __name__=='__main__': # sys.stdin=open('input2.txt','r') #test_case=int(input()) ## 총 테스트 케이스 개수 ..
-
[D3] SWEA 1208. [S/W 문제해결 기본] 1일차 - FlattenSWEA 2024. 5. 1. 12:47
1. 접근 방식접근이랄 것도 없다. 2. 디테일한 구현리스트[최대값 가지고 있는 인덱스]=-1리스트[최소값 가지고 있는 인덱스]+=1 *주의 사항*인덱스를 변수에 미리 빼놓자값이 변동되면서 최대값, 최소값에 지장을 줄 수 있음.3. 코드 구현1234567891011121314151617181920if __name__=='__main__': # sys.stdin=open('input2.txt','r') #test_case=int(input()) ## 총 테스트 케이스 개수 for tc in range(10): k=int(input()) s=list(map(int,input().split())) cnt=0 while cnt ..
-
[D3] SWEA 1244. [S/W 문제해결 응용] 2일차 - 최대 상금SWEA 2024. 5. 1. 12:01
1. 접근 방식SWEA에서 처음으로 풀어보는 DFS 문제 같다.숫자를 요리조리 옮기고 관찰해봤으나어떠한 규칙성도 발견되지 않았다.그래서, DFS로 접근하기로 했다. 2. 디테일한 구현dfs(cnt) -> cnt= 교환 횟수1) 재귀 함수의 종료 조건-> 교환 횟수를 다 채웠을 때 2) 교환하는 방법arr[i],arr[j]=arr[j],arr[i]dfs(cnt+1)arr[j],arr[i]=arr[i],arr[j]->돌려놨으면 다시 복구 시켜야한다.왜냐하면, 다음 줄기에서는 특정 하나의 문자열을 가지고이중 for문을 계속 도는 형태이여하기 때문이다.이건 말로 설명하기 어려운데 그림을 그려보면 이해가 갈 것이다.결국 재귀란 시스템도 규칙과 반복성이다. 3. 코드 구현123456789101112131415161..
-
[D3] SWEA 1206. [S/W 문제해결 기본] 1일차 - ViewSWEA 2024. 4. 30. 10:37
1. 접근 방식친절하다.그래프의 표의 값을배열로 옮겨보고,그래프를 보면서 천천히 관찰하면 된다. 2. 디테일한 구현자신의 인덱스 ~2~2에서자신이 가지고 있는 값이 가장 커야하고이 중에서 자신과 자신 아닌 값의 차이가 가장 작은 값을 고르면 된다. 3. 코드 구현123456789101112131415161718192021222324if __name__=='__main__': sys.stdin=open('input2.txt','r') #test_case=int(input()) ## 총 테스트 케이스 개수 for tc in range(10): n=int(input()) s=list(map(int,input().split())) r..
-
[D3] SWEA 14555. 공과 잡초SWEA 2024. 4. 30. 09:17
1. 접근 방식그림을 일일이 그려보고직접 과정을 따라해보니문제 풀이의 방향이 보였다. 2. 디테일한 구현공은 '(', ')'가 인접되어 있어바로 붙어있는 형태이다.공이 갯수가 추가 되는 경우는1)'('+'|' 2)'|'+')'3)'('+')'이다.3. 코드 구현1234567891011121314151617181920if __name__=='__main__': #sys.stdin=open('input2.txt','r') test_case=int(input()) ## 총 테스트 케이스 개수 for tc in range(test_case): s=input() cnt=0 for i in range(0,len(s)-1): ..
-
[D3] SWEA 14692. 통나무 자르기SWEA 2024. 4. 30. 08:17
1. 접근 방식헷갈리고 감이 안 왔다.이럴 땐 역시 n=1,2,3,~~ 조건이 작은 것부터 나열해보면 된다.그래서, 홀수일 땐 Bob의 승리짝수일 땐 Alice의 승리란 걸 찾았다. 2. 디테일한 구현홀수일 땐 Bob의 승리짝수일 땐 Alice의 승리 3. 코드 구현12345678910111213if __name__=='__main__': # sys.stdin=open('input2.txt','r') test_case=int(input()) ## 총 테스트 케이스 개수 for tc in range(test_case): n=int(input()) if n%2==0: print(f"#{tc+1} Alice") e..